从尾到头反过来打印出每个结点的值。
![](https://i-blog.csdnimg.cn/blog_migrate/041640b40982c08e46e4d4107f6212e1.png)
解题思路
使用递归
要逆序打印链表 1->2->3(3,2,1),可以先逆序打印链表 2->3(3,2),最后再打印第一个节点 1。而链表 2->3 可以看成一个新的链表,要逆序打印该链表可以继续使用求解函数,也就是在求解函数中调用自己,这就是递归函数。
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
ret = []
if listNode != None:
ret.extend(self.printListFromTailToHead(listNode.next))
ret.append(listNode.val)
return ret
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
lis = []
dummy = ListNode(0)
dummy.next = listNode
while dummy.next != None:
lis.append(dummy.next.val)
dummy = dummy.next
return lis[::-1]