首页 > 其他 > 详细

反转链表

时间:2018-03-09 11:04:16      阅读:159      评论:0      收藏:0      [点我收藏+]

1、输入一个链表,反转链表后,输出链表的所有元素。

2、

//调整节点i的next指针时,除了需要知道节点i本身,还要知道i的前一个节点h,我们要把节点i的next节点指向h。还需要事先保存一下i的下一个节点j,以防链表断开。
要准备三个指针,分别指向当前遍历到的节点、它的前一个节点以及后一个节点。
/*
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode* pReverseHead = nullptr; ListNode* pNode = pHead; ListNode* pPrev = nullptr; while(pNode != nullptr){ ListNode* pNext = pNode->next; if(pNext == nullptr){ pReverseHead = pNode; } pNode->next = pPrev; pPrev = pNode; pNode = pNext; } return pReverseHead; } };

 

反转链表

原文:https://www.cnblogs.com/haley0125/p/8506224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!