链表逆序

 已知链表的头节点head,写一个函数把链表逆序

 

1.#include<iostream> 2.using namespace std;
3.4.class Node
5.{
6.public:
7.    int data;
8.    Node* next;
9.};
10.11.Node* ReverseList(Node *head)
12.{
13.    if((head->next == NULL) || (head == NULL))
14.        return head;
15.16.    Node *temp1 = head;
17.    Node *temp2;
18.    Node *temp3 = temp1->next;
19.    temp1->next = NULL;
20.    while(temp3->next != NULL)
21.    {
22.        temp2 = temp3;
23.        temp3 = temp3->next;
24.        temp2->next = temp1;
25.        temp1 = temp2;
26.    }
27.    temp3->next = temp1;
28.    return temp3;
29.}
30.31.int main()
32.{
33.    Node* head1 = new Node();
34.    Node* head2 = new Node();
35.    Node* head3 = new Node();
36.    Node* head4 = new Node();
37.    Node* head5 = new Node();
38.    Node* head6 = new Node();
39.    Node* head7 = new Node();
40.41.    head1->data=1;
42.    head2->data=2;
43.    head3->data=3;
44.    head4->data=4;
45.    head5->data=5;
46.    head6->data=6;
47.    head7->data=7;
48.49.    head1->next=head2;
50.    head2->next=head3;
51.    head3->next=head4;
52.    head4->next=head5;
53.    head5->next=head6;
54.    head6->next=head7;
55.    head7->next=NULL;
56.57.    Node *temp = ReverseList(head1);
58.59.    while(temp != NULL)
60.    {
61.        cout<<temp->data<<"/t";
62.        temp = temp->next;
63.    }
64.    cout<<endl;
65.   
66.    delete head1,head2,head3,head4,head5,head6,head7;
67.    return 0;
68.}
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/c++/cppjs/2008930/146890.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值