- 利用栈
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
a = []
b = []
while listNode:
a.append(listNode.val)
listNode = listNode.next
while a :
b.append(a.pop())
return b
- 利用递归
递归代码虽然简洁,但是当链表非常长的时候,就会导致函数调用的层级很深,从而导致函数调用栈溢出,用栈实现的鲁棒性要好一点。class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
a = []
if not listNode:
return a
def helper(listNode):
if listNode.next:
helper(listNode.next)
return a.append(listNode.val)
helper(listNode)
return a