题目描述
- 输入一个链表,反转链表后,输出新链表的表头。
理解
- 怎么反转?
- 我要找到每个结点
- 改变每个结点的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