zoukankan      html  css  js  c++  java
  • 链表逆序

    要求实现函数:

    void converse(ListNode **head);

     【输入】head:    链表头节点,空间已经开辟好

     【输出】head:    逆序后的链表头节点

     【返回】无

     【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

     示例

    输入:链表  1->2->3->4->5 的头节点head

     输出:链表  5->4->3->2->1 的头节点head

     1 #include<iostream>
     2 #include<string>
     3 #include<vector>
     4 #include<algorithm>
     5 #include<stack>
     6 #include<map>
     7 #include<sstream>
     8 using namespace std;
     9 
    10 typedef struct tagListNode
    11 {
    12     int value;
    13     struct tagListNode *next;
    14 }ListNode;
    15 
    16 void converse(ListNode **head)
    17 {
    18     ListNode* h1 = *head;
    19     if(h1==NULL)
    20         return;
    21 
    22     ListNode *p, *q;
    23     p = h1;
    24     q = p->next;
    25 
    26     while(q!=NULL)
    27     {
    28         ListNode *temp = q;
    29         q = q->next;
    30         temp->next = p;
    31         p = temp;
    32     }
    33     h1->next = NULL;
    34     h1 = p;
    35 
    36     //head = &h1;  //这样写不能把逆序后的头指针传回去
    37     *head = h1;
    38 }
    39 
    40 int main()
    41 {
    42     int val;
    43     ListNode *h = NULL;
    44     ListNode *last=NULL, *p=NULL;
    45     
    46     while(cin>>val)
    47     {
    48         if(h==NULL)
    49         {
    50             h = new ListNode;
    51             h->value = val;
    52             last = h;
    53         }
    54         else
    55         {
    56             p = new ListNode;    
    57             p->value = val;    
    58             last->next = p;
    59             last = p;
    60         }
    61     }
    62     if(last!=NULL)
    63         last->next = NULL;
    64 
    65     converse(&h);
    66 
    67     ListNode *cur = h;
    68     while(cur!=NULL)
    69     {
    70         cout<<cur->value<<" ";
    71         cur = cur->next;
    72     }
    73     
    74     return 0;
    75 }

    运行结果:

  • 相关阅读:
    程序员的最大挑战
    12个有效的提高编程技能的方法
    风雨20年:我所积累的20条编程经验
    java的继承机制
    Java中获得程序当前路径的4中方法
    关于String的hashCode
    使用三目运算符时注意的一个问题
    linux查找符合条件的文件并删除
    Tomcat性能优化及JVM内存工作原理
    Linux(Centos)下调整分区大小(以home和根分区为例)
  • 原文地址:https://www.cnblogs.com/Marrybe/p/3821971.html
Copyright © 2011-2022 走看看