- 题目 剑指 Offer 06. 从尾到头打印链表
1.1 题目内容
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
1.2 解题思路
遍历链表,用列表存储节点值,翻转列表并输出。
注意点:链表没有空的头节点,从头节点开始存值。
解题方案:
1.2.1 使用reverse方法翻转数组
1.2.2 使用python列表直接翻转
1.2.3 递归法直接拼接下一个节点值和当前节点值(力扣题解)
(3)代码
第一种方法
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
ans = []
while head:
ans.append(head.val)
head = head.next
ans.reverse()
return ans
第二种方法
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
ans = []
while head:
ans.append(head.val)
head = head.next
return ans[::-1]
第三种方法
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
return self.reversePrint(head.next) + [head.val] if head else []



