Leetcode(206)-反转链表
2024-09-06 22:08:45
反转一个单链表。
示例:
输入: 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);
}
最新文章
- 『给它加个壳』纯MarkDown博客阅读体验优化
- js中this的理解
- CGAffineTransformMakeTranslation和CGAffineTransformTranslate
- $(document).ready()并不靠谱
- 【Android】广播BrocastReceiver
- MySQL中的binlog相关命令和恢复技巧
- C程序设计语言练习题1-1
- MVC之ActionResult
- C#正则表达式匹配任意字符
- sql语句用&#39;in&#39;执行多条语句时候,执行错误的解决方法
- RunTime 给类添加属性
- 数位dp初步——数位dp的两种方式
- Go 基准测试
- MFC 解决中文乱码问题
- WCF上传下载文件
- Burpsuite之Burp Collaborator模块介绍
- Jenkins五 配置tomcat
- CocosCreator项目结构
- 《Unix&;Linux大学教程》学习笔记5 :正则表达式
- Android 全局弹出版本更新 Dialog 思考和解决办法
热门文章
- [Usaco2015 dec]Breed Counting
- 简易双色球dome分享
- 大促密集,CDN如何保障电商体验如丝般顺滑?
- Promise 中reject 和 catch 处理上有什么区别
- EF Code First 无法加载指定的元数据资源
- Codeforces 1437F Emotional Fishermen(思维,dp)
- 阿里一面,给了几条SQL,问需要执行几次树搜索操作?
- java架构《并发线程中级篇》
- Redis4.0.1的安装及哨兵模式的配置
- Spring cloud-Bus (消息总线)