• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
指尖上的快乐
博客园    首页    新随笔    联系   管理    订阅  订阅

单链表逆转算法

 1 void rev(linknode **phead)
 2 {
 3     linknode *p1, *p2, *p3;
 4     p1 = p2 = p3;
 5     if ((*phead == NULL) || (*phead)->pNext == NULL)
 6     {
 7         return;
 8     }
 9     else
10     {
11         p1 = *phead;
12         p2 = p1->pNext;
13         while (p2 != NULL)
14         {
15             p3 = p2->pNext;
16             p2->pNext = p1; //让本应该指向前方的pNext指针向反方向指去.也是实现逆转最关键的一步.
17             p1 = p2;        //把p1移动到p2的位置,{p1指针指向p2的节点}
18             p2 = p3;        //把p2移动到p3的位置,{p2指针指向p3的节点}
19         }
20         (*phead)->pNext = NULL;
21         (*phead) = p1;
22     }
23 
24 }





 

posted @ 2015-07-02 23:15  指尖上的快乐  阅读(579)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3