题目描述:
- 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
python代码:
- 思路1:从头到尾遍历链表,遍历过程中保存每个节点的值到列表中,最后将列表取反。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
res = []
while listNode:
res.append(listNode.val)
listNode = listNode.next
return res[::-1]
- 思路2:从头到尾遍历链表,遍历时每个节点的值都插到列表的头部(栈 先进后出的思想)。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
res = []
while listNode:
res.insert(0,listNode.val)
listNode = listNode.next
return res