反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路
- 可以用头插法,摘下头节点,将链表节点头插法构造反转的链表
- 也可以递归让后一个节点指向自己
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL || pHead->next==NULL) return pHead;
ListNode *root=pHead;
ListNode *p=pHead->next,*pnext;
pHead->next=NULL;//摘下头节点
//头插法
while(p){
pnext=p->next;
p->next=root;
root=p;
p=pnext;
}
//递归方法
/*让下一个节点指向自己
ListNode *pReverse=ReverseList(pHead->next);
pHead->next->next=pHead;
pHead->next=NULL;
*/
return root;
}
};
6044

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



