链表翻转
Posted zhaochunhua12345
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表翻转相关的知识,希望对你有一定的参考价值。
/*
struct ListNode
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL)
;*/
class Solution
public:
ListNode* ReverseList(ListNode* pHead)
// 反转指针
ListNode* pNode=pHead; // 当前节点
ListNode* pPrev=nullptr;// 当前节点的上一个节点
ListNode* pNext=nullptr;// 当前节点的下一个节点
ListNode* pReverseHead=nullptr;//新链表的头指针
// 反转链表
while(pNode!=nullptr)
pNext=pNode->next; // 建立链接
if(pNext==NULL) // 判断pNode是否是最后一个节点
pReverseHead=pNode;
pNode->next=pPrev; // 指针反转
pPrev=pNode;
pNode=pNext;
return pReverseHead;
;
以上是关于链表翻转的主要内容,如果未能解决你的问题,请参考以下文章