// 输入一个链表,反转链表后,输出新链表的表头。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {// 该方法是剑指offer上推荐的方法
if(pHead == NULL) return NULL ;
ListNode* pPre = NULL ;
ListNode* pRet = NULL ;
ListNode* pCurNode = pHead ;
while(pCurNode) {
if(pCurNode->next == NULL) {// 最后一个结点
pRet = pCurNode ;
pRet->next = pPre ;
break ;
}
ListNode* pTemp = pCurNode ;// 断开连接重新指向 需要维护pPre指向前面的结点
pCurNode = pCurNode->next ;
pTemp->next = pPre ;
pPre = pTemp ;
}
return pRet ;
}
};
反转链表
最新推荐文章于 2020-10-19 13:13:40 发布