描述 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。

  1. 返回从尾部到头部的列表值序列,例如[1,2,3]
    def printListFromTailToHead1(self, listNode):
        if not listNode:
            return []
        re = []
        while listNode:
            re.insert(0,listNode.val)
            listNode = listNode.next
        return re
  1. 使用栈
    def printListFromTailToHead2(self, listNode):
        if not listNode:
            return []
        re = []
        list01 = []
        while listNode:
            list01.append(listNode.val)
            listNode = listNode.next
        return list01[::-1] 
  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