题目描述
输入一个链表,反转链表后,输出新链表的表头。
思路分析
设置两个next节点和pre节点
- 首先将pHead->next暂存给next节点
- 反转链表指向,让pHead->next指向pre
- pre和pHead一起走到下一个节点,把pHead给pre,再把next给pHead
- 返回pre
具体实现
C++
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL)
return NULL;
ListNode* next=NULL;
ListNode* pre=NULL;
while(pHead != NULL){
next=pHead->next; //记录下一个
pHead->next=pre; //当前指向上一个
pre=pHead; //pre指向当前
pHead=next; //head指向下一个
}
return pre;
}
python:
def ReverseList(self, pHead):
# write code here
if(pHead==None):
return None
next=None
pre=None
while(pHead != None):
next=pHead.next
pHead.next=pre
pre=pHead
pHead=next
return pre