思路:3个辅助指针,不断移动指针位置
#include <iostream>
using namespace std;
typedef struct Node
{
int val;
struct Node* next;
}node;
node* reverse(node* head)
{
node* p=NULL;
node* q=NULL;
node* r=NULL;
p=head;
q=head->next;
head->next=NULL;
while(q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
return p;
}
int main()
{
node* n1=new node;
node* n2=new node;
node* n3=new node;
n1->val=1;
n2->val=2;
n3->val=3;
n1->next=n2;
n2->next=n3;
n3->next=NULL;
node* h=new node;
h=reverse(n1);
while(h!=NULL)
{
cout<<h->val<<" ";
h=h->next;
}
}
链表逆序
最新推荐文章于 2020-11-21 12:40:33 发布
本文介绍了一种使用三个辅助指针实现链表反转的算法,并通过C++代码详细展示了该算法的具体实现过程。此方法通过不断交换节点之间的连接来达到反转的目的。

4035

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



