1、问题描述
输入一个链表,实现一个函数,将链表反转并输出。
2、解题思路
- 边界条件:(1)链表为空指针,返回空;(2)链表只有一个节点。
- 思路1:反转链表时需要使用三个指针prev,pcur,pnext。pcur指向当前遍历的节点,prev指向当前遍历节点的前一个节点,pnext指向当前遍历节点的后一个节点。开始时,prev 设置为空,pcur指向头节点,但pcur非空时,pnext保存当前遍历节点的下一个节点,然后更改pcur的next,让其指向prev,之后令prev指向当前节点pcur,pcur指向当前节点的下一个节点pnext。
3、代码实现
def ReverseList(pHead):
if pHead == None:
return None
if pHead.next == None:
return pHead
pcur = pHead
prev = None
while pcur != None:
pnext = pcur.next
pcur.next = prev
prev = pcur
pcur = pnext
return prev