题目描述
- 输入一个链表,反转链表后,输出新链表的表头。
理解
- 怎么反转?
- 我要找到每个结点
- 改变每个结点的next
- 参考阅读:
解题思路
思路1
- 递归
class Solution:
def ReverseList(self, pHead):
if pHead == None or pHead.next == None:
return pHead
new_Head = self.ReverseList(pHead.next)
pHead.next.next = pHead
pHead.next = None
return new_Head
思路2
- 三个指针
class Solution:
def ReverseList(self, pHead):
if not pHead:
return pHead
p=pHead
q=p.next
p.next=None
while q:
r=q.next
q.next=p
p=q
q=r
return p

本文详细介绍了链表反转的两种核心方法:递归和迭代。通过图文并茂的方式,深入浅出地解析了每种方法的具体实现步骤,并附带Python代码示例。适合初学者快速掌握链表反转这一经典算法问题。
4932

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



