剑指offer 06. 从尾到头打印链表
问题链接
https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/
解题思路
首先看参数和返回值。参数为一个链表的头节点。返回值为一个逆序好的数组。
然后看本层做什么,以及怎么缩小规模。
本层要做的事情就是将下一层返回过来的数组拿到,然后把本层的值append进去,然后把这个组合后的数组返回回去。
缩小规模就是把下一个节点当作头节点传递给递归函数。
然后看递归出口。当head为None时,应当返回一个空数组。
代码
class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def reversePrint(self, head: ListNode): if head is None: return [] else: res = self.reversePrint(head.next) res.append(head.val) return res