编程实现单链表的逆置
2011-12-14 17:25
281 查看
node *reverse(node *head){ node *p1,*p2,*p3; //申请三个结点 if(head==NULL || head->next==NULL) //如果目标单链表是空的,或是只有一个结点的情况 return head; p1=head; //使p1指向头结点 p2=p1->next;//使p1的next指向p2; while(p2) //当P2不为NULL时 { p3=p2->next;//使用P3指向p2的next p2->next=p1; //使p2的next指向p1p1=p2; //使p1指向p2p2=p3; //使p2指向p3}//重复此过程,即利用自己申请的p1,p2,p3三个结点,不断的向后移动,每次循环使目标单链表的一个结点指向前面的//最后一次循环时,p2为最后一个元素 head->next=NULL;//使目标链表的尾结点(原头结点)指向NULL head=p1;//使目标链表的尾结点指向NULL return head;}
相关文章推荐
- 编程实现单链表的逆置
- 编程实现单链表的逆置
- 编程实现单链表的逆置
- 编程实现单链表的删除节点
- 实现单链表的逆置
- 面试题5:实现单链表的逆置
- 单链表(二):如何实现单链表的排序、逆置(逆序)
- 编程实现合并两个有序单链表
- 基础笔试题:编程实现一个单链表的建立、测长、打印
- C语言实现单链表的逆置
- C++模版编程——单链表的实现
- 单链表(二):如何实现单链表的排序、逆置(逆序)
- 《单链表的逆置(实现了假逆置)》
- 用C++实现单链表的创建、逆置和输出 的两种方法
- 用C++实现单链表的创建、逆置和输出
- 面试题2 编程实现单链表删除节点
- C语言实现单链表的逆置
- 单链表的逆置-C++实现
- 单链表的逆置-C++实现
- 单链表的逆置-C++实现