首页 > 其他 > 详细

单链表反转

时间:2015-07-25 18:19:03      阅读:277      评论:0      收藏:0      [点我收藏+]

1.使用三个节点指针遍历链表实现反转

技术分享

 

技术分享

技术分享

技术分享
 1 template<typename Object>
 2 void ReverseList(SingleListNode<Object> *head)
 3 {
 4     //1.三个指针迭代
 5     SingleListNode<Object> *p,*q,*r;
 6     if (head->next==NULL)
 7     {
 8         return ;
 9     }
10     else
11     {
12         p=head->next;
13         q=p->next;
14         r=q->next;
15         p->next=NULL;
16         while (q)
17         {
18             r=q->next;
19             q->next=p;
20             p=q;
21             q=r;
22         }
23         head->next=p;
24     }
25     return ;
26 }
View Code

 2.两个指针迭代,遍历链表将节点依次插入到头节点后,同时p,q节点指针后移

 1 template<typename Object>
 2 void ReverseList(SingleListNode<Object> *head)
 3 {
 4     //2.两个指针迭代,遍历链表将节点依次插入到头节点后,同时p,q节点指针后移
 5     SingleListNode<Object> *p,*q;
 6     if (head->next==NULL)
 7     {
 8         return;
 9     } 
10     else
11     {
12         p=head->next;
13         q=p->next;
14         while(q)
15         {
16             p->next=q->next;
17             q->next=head->next;
18             head->next=q;
19             q=p->next;
20         }
21     }
22     return;
23 
24 }

 

单链表反转

原文:http://www.cnblogs.com/fengyiyangdeakaliusi/p/4675417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!