广州 营销型网站建设,百度的网址,电子商务很难就业吗,龙岗微网站建设题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例 : 输入:head [1,2,3,4,5], n 2
输出:[1,2,3,5]解题思路:
使用一趟扫描实现。这里就是双指针的经典应用。如果要…江门市住房和城乡建设局网站 拉萨建设厅网站首页 德阳北京甘肃省住房城乡建设厅网站首页 网站建设资金报告 公司网站建设的费用会计处理 西安外贸网站建设/百度高级搜索网址 卫生间做防水网站/长沙官网seo技术厂家 徐州网站建设哪家专业/百度app下载安装 官方 企业网站改版的好处/郑州seo外包服务 做网站要看什么书/nba排名最新赛程 电子商务网站建设评估的指标有哪些?/赣州seo优化 网站怎样免费推广/百度网盘网页 保亭整站优化/广告策划方案范文 漂亮的博客网站模板/百度电脑版官方下载 建设公司自己的网站/网络服务商怎么咨询 徐州企业网站制作/搜索引擎优化培训 路桥网站制作/苏州seo建站 手机视频网站建设/百度怎么发布短视频 做网站要学那些东西/企业seo案例 湖南城市建设技术学院官方网站/专业网站seo推广 网站建设宗旨/百度统计网站 wordpress 来路插件/网站关键词优化怎么弄 空气源热泵热水器网站建设/网站seo优化方案 双创网站建设/淘宝关键词top排行榜 教育企业重庆网站建设/谷歌seo是做什么的 html5网站制作工具/武汉全网推广 做网站 违法/免费个人主页网站 百度站点管理/注册公司网上申请入口 贵州省城乡住房和建设厅网站首页/专业地推团队电话 为一个村做网站/业务推广平台 天津网站建设企业/培训推广 seo 做网站信科网站建设/软件网站关键词优化 静态网站需要数据库吗/爱站网关键词挖掘工具站长工具 内网建立网站/公众号微博seo 不拦截网站的浏览器/沧州网络推广公司
题目:给你一个链表,删除链表的倒数第 n
个结点,并且返回链表的头结点。
示例 :
输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5]
解题思路:
使用一趟扫描实现。这里就是双指针的经典应用。如果要删除倒数第n个节点,让fast移动x步,然后让fast和slow同时移动,直到fast指向链表末尾的下一个结点nullptr,这时候大家才会停下来。
那么问题来了,应该是先让fast指针移动多少步才合理呢。
首先,我们使用虚拟头结点,这样方便处理删除实际头结点的逻辑。
那么,快慢指针都是从虚拟头结点出发的。使用上图的例子,也添加虚拟头结点,那一共有5个结点(虚拟头结点不算是结点)。要让fast指针走到nullptr,那需要走6(5+1)步。而要慢指针走到被删除的结点的前一结点停下来,那需要slow指针走3(5-2)步。
一般化:
那么,设一共有k个结点,那fast指针走到nullptr,那需要走k+1步。slow指针要走到被删除的结点的前一结点,需要走(k-n)步。
一开始,假设fast指针先走x步,接着fast,slow指针同时走,而slow指针走(k-n)步,就停下来,而fast指针也就跟着走(k-n)步就走到了nullptr。
所以k+1=(k-n)+x; x=n+1;
所以fast指针需要先走n+1步。
理解了这个,代码就好写了。
代码:
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {auto dumyhead=new ListNode(0,head);auto fast=dumyhead;for(int i=0;i<=n;++i)fast=fast->next;auto slow=dumyhead;while(fast){fast=fast->next;slow=slow->next;}//这里没有写到delete 结点slow->next=slow->next->next;return dumyhead->next;}
};
查看全文http://www.xqgm.cn/news/1243.html