题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
思路
思路一:
利用栈的性质。 先进后出。 那么建立一个栈,开始遍历链表,每遇到一个节点就把该节点压入栈中。结束后栈的顶部就是链表的尾,栈的底部就是链表的头。
思路二:
递归。利用递归的思路,先找到尾部的结点,将这个节点放入数组,然后逐层返回。
代码
栈
def printListFromTailToHead(self, listNode):
stack = []
result = []
while listNode is not None:
stack.append(listNode.val)
listNode = listNode.next
while len(stack)>0:
node = stack.pop(-1)
result.append(node)
return result
递归
class Solution:
def __init__(self):
self.result = []
def printListFromTailToHead(self, listNode):
if listNode :
self.printListFromTailToHead(listNode.next)
self.result.append(listNode.val)
return self.result