首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
人狠话不多的六边形战士很想去东北泡澡
西安电子科技大学 电子信息类
发布于北京
关注
已关注
取消关注
@开车的阿Q:
题解 | #反转链表#
描述 这是一篇面对初级coder的题解。 知识点:链表 栈 难度:一星 题解 题目:输入一个链表,反转链表后,输出新链表的表头。 考察链表的基础知识 方法一:栈 利用栈后进先出的特性,可以实现链表翻转 #includeclass Solution {public: ListNode* ReverseList(ListNode* pHead) { stack<listnode> stack;//栈 ListNode *answer=NULL;//返回值 if(!pHead) return pHead; while(pHead->next)//全部入栈 { stack.push(pHead); pHead=pHead->next; } answer = pHead; for(int k=stack.size(); k>0;k--) { pHead->next=stack.top(); stack.pop(); pHead=pHead->next; } pHead->next = nullptr;//尾指针置空 避免回环 return answer; }};</listnode> 运行时间 6ms 占用内存 504KB 方法二:用指针调转 本质上是两个链表,逐个把旧链表的节点调转到新链表下 一个复杂且清晰的版本 class Solution {public: ListNode* ReverseList(ListNode* pHead) { struct ListNode *newnode=NULL; //新节点 struct ListNode *tempnode;//交换缓存 if(pHead==NULL) return pHead; while(pHead->next!=NULL) { if(newnode == NULL)//第一次进入 { newnode = pHead;//把头结点挪过来 pHead=pHead->next; newnode->next=NULL; } else { tempnode=newnode;//利用交换缓存从旧链表取节点,作为新链表头节点 newnode=pHead; pHead=pHead->next; newnode->next=tempnode; } } pHead->next=newnode;//把最后一个节点挂上去 return pHead; }}; 运行时间 8ms 占用内存 624KB 进一步优化代码逻辑 class Solution {public: ListNode* ReverseList(ListNode* pHead) { struct ListNode *newnode=NULL; //新链表头指针 struct ListNode *tempnode;//交换缓存,临时存放要换过来的头节点 while(pHead) { tempnode=pHead->next;//利用交换缓存从旧链表取节点, pHead->next=newnode;//作为新链表头节点 newnode=pHead;//更新新链表 pHead=tempnode;//更新旧链表 } return newnode;//返回新链表 }}; 运行时间 8ms 占用内存 632KB 总结 各位牛友在练习的时候要注意边界条件的判定 扩展 快慢指针是链表中一种常见的处理方法 在判断链表中是否有环中也很有用
点赞 6
评论 1
全部评论
推荐
最新
楼层
滴滴
校招火热招聘中
官网直投
相关推荐
二狗王
05-19 16:28
C++
大厂C++一定要学redis吗
现在在准备秋招,但是还没学过redis那些中间件,现在应该学一下redis还是好好搞一搞项目和八股
点赞
评论
收藏
转发
牛客781415392号
05-16 17:13
华为_嵌入式开发工程师
2012实验室在线收留华为实习生软件机考挂了的伤心人er
有没有实习挂了的啊,我这边目前投递的学生都会等他们准备好了才发机考,所以秋招的话欢迎投递过来,会给充足的时间准备,也会给予一些指导,欢迎投递过来呀。当然没投递过的也欢迎~算法工程师1、面向云、大数据、科学计算等场景,负责高性能数值计算方法、混合精度科学计算算法、高性能计算+AI算法、基础数学算法研究、实现和优化,使能高性算法库在EDA/HPC/大数据/无线网络等关键场景获得极致性能;2、构建高性能数学求解器,解决EDA/电磁仿真/气象等关键场景瓶颈问题;3、负责HPC领域内前沿技术、求解器关键算法、下一代高性能计算关键技术的探索及技术验证,持续保持业界领先4、参与国内外TOP学术会议、国标论坛...
投递华为等公司10个岗位 >
点赞
评论
收藏
转发
BatmanX
03-28 11:55
四川大学 戏剧与影视学类
我回答得对吗
玩原神的男孩子真的很加分诶
点赞
评论
收藏
转发
沙福林
05-10 20:31
同济大学 土木类
不知道说啥,咱就说谁给他的勇气和底气?
点赞
评论
收藏
转发
non_hana
05-17 13:58
已编辑
杭州电子科技大学 计算机类
古茗前端日常实习一面
一、前言 先吐槽一下古茗这个团队的一些事情。 实际上在这次面试之前,古茗的前端团队leader给我打过一次电话,跟我说明了一些他们前端技术团队的一些状况。 经常有逛掘金的同学应该有经常性的看到过古茗前端团队写的一些技术性的文章,或是一些技术经验的总结,或是对于新技术的研究与探索。 他们的整个前端团队是以 学术氛围浓厚 而著称的。据leader介绍,他们对于一门技术的研究采用类似于 研究生课题 的模式,也就是针对一门选题,从各个维度去分析这门技术的某个方面的实现原理、使用场景等等,最终由leader汇总成一门报告的形式,再进行加工就成了一篇篇的文章。 简而言之,技术氛围浓厚、学术探讨性强。 这一...
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
全站热榜
1
...
开摆了,写小说去了
7064
2
...
没offer的我们也很优秀偶
6521
3
...
【有奖活动】浅聊一下我的实习⭐
6104
4
...
双非本 腾讯WXG暑期已offer | 附面经
5688
5
...
滴滴秋储-服务端开发 OC
5629
6
...
5.20携程笔试
4794
7
...
快手客户端开发工程师(1)
4740
8
...
帮助大家答疑
4419
9
...
华子报批了
4144
10
...
深夜emo了,暑假实习还是0offer
3805
正在热议
#
牛客帮帮团来啦!有问必答
#
809729次浏览
12917人参与
#
机械制造薪资爆料
#
318778次浏览
3722人参与
#
晒一晒我的offer
#
3455050次浏览
55143人参与
#
0offer是寒冬太冷还是我太菜
#
426055次浏览
4913人参与
#
如果可以选,你最想从事什么工作
#
185261次浏览
3064人参与
#
你觉得找工作该拿大厂还是小厂练手
#
61022次浏览
862人参与
#
海康威视求职进展汇总
#
100875次浏览
1212人参与
#
荣耀求职进展汇总
#
69622次浏览
694人参与
#
实习必须要去大厂吗?
#
13546次浏览
216人参与
#
宁德时代求职进展汇总
#
36899次浏览
411人参与
#
实习生应该准时下班吗
#
80333次浏览
590人参与
#
国企vs私企,你更想去?
#
20166次浏览
203人参与
#
想实习转正,又想准备秋招,我该怎么办
#
116920次浏览
1314人参与
#
金三银四,你有感觉到吗
#
327819次浏览
4206人参与
#
你的秋招进行到哪一步了
#
367345次浏览
6391人参与
#
求职遇到的搞笑事件
#
19526次浏览
286人参与
#
正在春招的你,也参与了去年秋招吗?
#
136107次浏览
1703人参与
#
非技术薪资爆料
#
73780次浏览
1000人参与
#
滴!实习打卡
#
215295次浏览
3630人参与
#
找工作,你会甘心进小厂还是猛冲大厂
#
37304次浏览
368人参与
牛客网
牛客企业服务