描述 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
- 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead1(self, listNode):
if not listNode:
return []
re = []
while listNode:
re.insert(0,listNode.val)
listNode = listNode.next
return re
- 使用栈
def printListFromTailToHead2(self, listNode):
if not listNode:
return []
re = []
list01 = []
while listNode:
list01.append(listNode.val)
listNode = listNode.next
return list01[::-1]
- 递归
import sys
# 由于最后一个例子未通过,显示"RecursionError: maximum recursion depth exceeded"
# 查询是递归时调用自己太多次造成,超过最大递归深度。所以设置一个限度
sys.setrecursionlimit(100000) # 修改递归深度的值,让它变大大一点
def printListFromTailToHead3(self, listNode):
if not listNode:
return []
re = []
def func(node):
if node:
func(node.next)
re.append(node.val)
func(listNode)
return re