Chinaunix首页 | 论坛 | 博客
  • 博客访问: 487526
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1916
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-11 22:01
个人简介

从事实时计算多年,熟悉jstorm/spark/flink/kafka/rocketMq, 热衷于开源,希望在这里和前辈们一起学习与分享,得到长足的进步!邮箱:hustfxj@gmail.com 我的githup地址是:https://github.com/hustfxj。欢迎和大家一起交流探讨问题。

文章分类

全部博文(80)

文章存档

2017年(11)

2015年(3)

2014年(33)

2013年(33)

分类: C/C++

2014-03-18 21:19:00


点击(此处)折叠或打开

  1. //思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面
  2. ListNode * ReverseList(ListNode * head)
  3. {
  4.    //如果链表为空或者链表中只有一个元素
  5.    if(head==NULL || head->m_pNext==NULL)
  6.      return head;
  7.    ListNode * p=head->m_pNext;
  8.    ListNode * q=head;
  9.    while(p!=NULL)
  10.    {
  11.      q->m_pNext=p->m_pNext;//记录下p的下一个节点
  12.      p->m_pNext=head;
  13.      head=p;
  14.      p=q->m_pNext;//准备将p的下一个节点放到表头
  15.    }
  16.    return head;
  17. }

  18. //递归方式
  19. ListNode * ReverseList2(ListNode * head)
  20. {
  21.     //如果链表为空或者链表中只有一个元素
  22.     if(head==NULL || head->m_pNext==NULL)
  23.         return head;
  24.     else
  25.     {
  26.      ListNode * newhead=ReverseList2(head->m_pNext);//先反转后面的链表
  27.      head->m_pNext->m_pNext=head;//再将当前节点设置为其然来后面节点的后续节点
  28.      head->m_pNext=NULL;
  29.      return newhead;
  30.     }
  31. }


阅读(2830) | 评论(0) | 转发(0) |
0

上一篇:非递归中序遍历

下一篇:迷宫问题

给主人留下些什么吧!~~