剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
方法一: 栈思想
将所有数据存入列表,反向打印
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
stack = []
while head is not None:
stack.append(head.val)
head = head.next
return stack[::-1]
方法二: 递归思想
帮助理解:将N个字符倒序打印,可以视为将后N-1个字符倒序打印,再加上第一个字符
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
if head is not None:
rev = self.reversePrint(head.next) + [head.val]
return rev
else :
return []