0
点赞
收藏
分享

微信扫一扫

06. 从尾到头打印链表


​​剑指 Offer 06. 从尾到头打印链表​​

难度简单42

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

使用递归方法最简单 一句代码搞定

# 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]:
return self.reversePrint(head.next) + [head.val] if head else []

但是这样效率并不是很高

06. 从尾到头打印链表_数据

我们使用迭代的方法

# 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]:
li = []
curr = head
while curr is not None:
li.append(curr.val)
curr = curr.next
li.reverse()
return li

我们这里并没有一直在列表的头进行插入, 由于列表的内部结构特点, 那样的会一直在移动后面的所有数据, 最好的时候是这样的

06. 从尾到头打印链表_数组_02

举报

相关推荐

0 条评论