剑指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

 

posted @ 2023-01-04 11:35  BJFU-VTH  阅读(14)  评论(0编辑  收藏  举报