反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

思路:反转链表很简单,经常使用stack的,一下子就会想到用stack存储链表的节点,然后反向输出

ListNode* reverseList(ListNode* head)
{
stack<ListNode*> s;
ListNode* p=head,*newhead,*pnew;
newhead=NULL;
while(p)
{
s.push(p);
p=p->next;
}
while(!s.empty())
{
if(newhead==NULL)
{
newhead=pnew=s.top();
s.pop();
}
else
{
pnew->next=s.top();
s.pop();
pnew=pnew->next;
}
}
if(newhead)
pnew->next=NULL;
return newhead;
}

另外还有一种递归的方式

ListNode *reverseList(ListNode *head,ListNode *pNewHead)
{
if(head == NULL)
return pNewHead;
ListNode *next = head->next;
head->next = pNewHead;
return reverseList(next,head);
}
ListNode* reverseList(ListNode* head) {
return reverseList(head,NULL);
}

最新文章

  1. 『给它加个壳』纯MarkDown博客阅读体验优化
  2. js中this的理解
  3. CGAffineTransformMakeTranslation和CGAffineTransformTranslate
  4. $(document).ready()并不靠谱
  5. 【Android】广播BrocastReceiver
  6. MySQL中的binlog相关命令和恢复技巧
  7. C程序设计语言练习题1-1
  8. MVC之ActionResult
  9. C#正则表达式匹配任意字符
  10. sql语句用&#39;in&#39;执行多条语句时候,执行错误的解决方法
  11. RunTime 给类添加属性
  12. 数位dp初步——数位dp的两种方式
  13. Go 基准测试
  14. MFC 解决中文乱码问题
  15. WCF上传下载文件
  16. Burpsuite之Burp Collaborator模块介绍
  17. Jenkins五 配置tomcat
  18. CocosCreator项目结构
  19. 《Unix&amp;Linux大学教程》学习笔记5 :正则表达式
  20. Android 全局弹出版本更新 Dialog 思考和解决办法

热门文章

  1. [Usaco2015 dec]Breed Counting
  2. 简易双色球dome分享
  3. 大促密集,CDN如何保障电商体验如丝般顺滑?
  4. Promise 中reject 和 catch 处理上有什么区别
  5. EF Code First 无法加载指定的元数据资源
  6. Codeforces 1437F Emotional Fishermen(思维,dp)
  7. 阿里一面,给了几条SQL,问需要执行几次树搜索操作?
  8. java架构《并发线程中级篇》
  9. Redis4.0.1的安装及哨兵模式的配置
  10. Spring cloud-Bus (消息总线)