题目描述
反转一个单链表
- 示例
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
- 进阶
你可以迭代或递归地反转链表。
用队列实现赋值
反转,即先进后出,使用队列依此取值赋值操作。
def reverseList(self, head):
node_queue = []
p = head
while p:
node_queue.append(p.val)
p = p.next
p = head
while p:
p.val = node_queue.pop(-1)
p = p.next
return head
直接法
维系一个结点p始终指向头结点,即第一个结点。
def reverseList(self, head):
p, h = None, head
while h:
tmp = h.next
h.next = p
p = h
h = tmp
return p
(最近更新:2019年04月16日)
本文深入探讨了单链表的反转算法,提供了两种方法:一种是利用队列实现的迭代反转,另一种是直接法,通过调整指针来完成反转。详细解释了每种方法的实现过程和代码示例。
1846

被折叠的 条评论
为什么被折叠?



