题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。代码如下:

#include<iostream>
using namespace std;
struct Node
{
int value;
Node
* link;
Node()
{
value
=0;
link
=NULL;
}
};
//返回反向链表的头结点
Node* Reserve(Node * head)
{
Node
* pre,*next;
pre
=head;
head
=head->link;
pre
->link=NULL;
while(head!=NULL)
{
next
=head->link;
head
->link=pre;
pre
=head;
head
=next;
}
return pre;
}

int main()
{
Node
*head = new Node;
Node
*tail=head;
//生成10个结点元素
for(int i=0;i<10;i++)
{
Node
* newNode= new Node;
newNode
->value=i+1;
tail
->link=newNode;
tail
=newNode;
}
//正向遍历链表
Node * interator = head;
while(interator!=NULL)
{
cout
<<interator->value<<endl;
interator
=interator->link;
}
//将链表反向
interator=Reserve(head);
while(interator!=NULL)
{
cout
<<interator->value<<endl;
interator
=interator->link;
}
//堆区内存清理
while(head!=NULL)
{
Node
* next=head->link;
delete head;
head
=next;
}
return 0;
}

相关文章:

  • 2021-07-16
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2022-03-06
猜你喜欢
  • 2021-07-08
  • 2022-01-19
  • 2021-10-29
  • 2022-02-16
  • 2021-11-29
相关资源
相似解决方案