当前位置: 首页 > news >正文

广州 营销型网站建设/百度的网址

广州 营销型网站建设,百度的网址,电子商务很难就业吗,龙岗微网站建设题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 : 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]解题思路: 使用一趟扫描实现。这里就是双指针的经典应用。如果要…

题目:给你一个链表,删除链表的倒数第 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

相关文章:

  • 江门市住房和城乡建设局网站
  • 拉萨建设厅网站首页
  • 德阳北京甘肃省住房城乡建设厅网站首页
  • 网站建设资金报告
  • 公司网站建设的费用会计处理
  • 西安外贸网站建设/百度高级搜索网址
  • 卫生间做防水网站/长沙官网seo技术厂家
  • 徐州网站建设哪家专业/百度app下载安装 官方
  • 企业网站改版的好处/郑州seo外包服务
  • 做网站要看什么书/nba排名最新赛程
  • 电子商务网站建设评估的指标有哪些?/赣州seo优化
  • 网站怎样免费推广/百度网盘网页
  • 保亭整站优化/广告策划方案范文
  • 漂亮的博客网站模板/百度电脑版官方下载
  • 建设公司自己的网站/网络服务商怎么咨询
  • 徐州企业网站制作/搜索引擎优化培训
  • 路桥网站制作/苏州seo建站
  • 手机视频网站建设/百度怎么发布短视频
  • 做网站要学那些东西/企业seo案例
  • 湖南城市建设技术学院官方网站/专业网站seo推广
  • 网站建设宗旨/百度统计网站
  • wordpress 来路插件/网站关键词优化怎么弄
  • 空气源热泵热水器网站建设/网站seo优化方案
  • 双创网站建设/淘宝关键词top排行榜
  • 教育企业重庆网站建设/谷歌seo是做什么的
  • html5网站制作工具/武汉全网推广
  • 做网站 违法/免费个人主页网站
  • 百度站点管理/注册公司网上申请入口
  • 贵州省城乡住房和建设厅网站首页/专业地推团队电话
  • 为一个村做网站/业务推广平台
  • 天津网站建设企业/培训推广 seo
  • 做网站信科网站建设/软件网站关键词优化
  • 静态网站需要数据库吗/爱站网关键词挖掘工具站长工具
  • 内网建立网站/公众号微博seo
  • 不拦截网站的浏览器/沧州网络推广公司
  • 相关文章:

  • 同一个服务器的网站做有链/百度的网址怎么写