反转链表

Posted haley0125

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转链表相关的知识,希望对你有一定的参考价值。

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; } };

 

以上是关于反转链表的主要内容,如果未能解决你的问题,请参考以下文章

如何链表反转

反转链表

c语言,链表的反转,请写出代码,并讲解下,谢了!!!!!

代码的鲁棒性:反转链表

Offer[24] 反转链表

初级--04---链表反转----链表实现栈队列双端队列