单链表反转

时间:2015-09-23 17:04:20   收藏:0   阅读:224

从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。

  1. Node* ReverseList(Node* head)   
  2. {   
  3.     Node *p,*q;    
  4.     p=head->next;   
  5.     while(p->next!=NULL)      //在这个循环过程中p所指的元素一直是不变的  
  6.     {  
  7.         q=p->next;   
  8.         p->next=q->next;   
  9.         q->next=head->next;   
  10.         head->next=q;   
  11.     }   
  12.     p->next=head;            //相当于成环   
  13.     head=p->next->next;       //新head变为原head的next   
  14.     p->next->next=NULL;     //断掉环   
  15.     return head;     
  16. }  

版权声明:本文为【借你一秒】原创文章,转载请标明出处。

原文:http://blog.csdn.net/u013467442/article/details/48681829

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!