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

《原始传奇》官方网站网址导航大全软件下载

《原始传奇》官方网站,网址导航大全软件下载,wordpress新闻视频站,安阳做网站的费用19.删除链表的倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2:输入:head [1], n 1 输出&…

19.删除链表的倒数第N个节点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例 1:
image.png
输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5]
示例 2:输入:head = [1], n = 1 输出:[]
示例 3:输入:head = [1,2], n = 1 输出:[1]

我的思路

删除倒数第n个节点,问题就在于如何去定位这倒数第n个,从前到后就是需要有个索引,但现在问题在于链表总的长度并不知道,所以需要第一步先去找到链表的长度:通过定义一个size,然后对链表进行遍历,逐渐加1,获取链表长度。然后定义索引为index=size-n。再遍历到索引处,执行删除。

class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = nextclass Solution(object):def removeNthFromEnd(self, head, n):""":type head: ListNode:type n: int:rtype: ListNode"""dummy_node = ListNode(next=head)cur = dummy_nodesize = 0 # 链表长度while cur.next:cur = cur.nextsize += 1temp = dummy_nodeindex = size - nfor i in range(index):temp = temp.nexttemp.next = temp.next.nextreturn dummy_node.next

进阶:你能尝试使用一趟扫描实现吗?
可以用快慢指针法。
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。(比较巧妙)
思路是这样的,但要注意一些细节。
分为以下几步:

  1. 定义虚拟节点
  2. 定义fast指针和slow指针,初始值为虚拟头结点,如图:

image.png

  1. fast首先走n + 1步 ,为什么是n+1呢,因为只有这样同时移动的时候slow才能指向删除节点的上一个节点(方便做删除操作),如图:

image.png

  1. fast和slow同时移动,直到fast指向末尾,如图:

注意是 fast为None 而不是 fast.next 为None
image.png

  1. 删除slow指向的下一个节点,如图:

image.png

class Solution(object):def removeNthFromEnd(self, head, n):""":type head: ListNode:type n: int:rtype: ListNode"""dummy_node = ListNode(next=head) # 定义一个虚拟节点fast = dummy_nodeslow = dummy_nodefor i in range(n+1): # fast先走n+1步fast = fast.nextwhile fast != None: # fast和slow同时走fast = fast.nextslow = slow.nextslow.next = slow.next.nextreturn dummy_node.next

本文文字及图片参考:https://programmercarl.com/

http://www.yayakq.cn/news/395203/

相关文章:

  • 郑州网站推广电话长春免费建站模板
  • 自己可以接单做网站吗个人门户网站备案流程
  • 自适应网站导航是怎么做的内网网站如何建设
  • 怎么做外网的网站句容建设局网站
  • 网站建设服务器是什么意思delphi网站开发教程
  • 北京网站开发联系电话wordpress iis 404
  • 专门做动漫的网站吗263企业邮箱app下载安卓
  • 出版社类网站模板动感地带青春卡
  • 官网的建站过程wordpress发布图片
  • 桥梁建设网站在哪里可以投稿辽宁省建设工程造价管理网站
  • 开发菏泽网站建设易讯企业建站系统
  • 中国建设银行企业网站网站建设运营要求
  • 怎么自己做导航网站分类信息网站发布标题
  • 阿里云做网站需要些什么国企央企招聘2022年
  • 企业网站推广方法实验报告毕业设计网站选题
  • 建设网站类型wordpress侧边栏加速
  • 罗湖公司网站建设wordpress怎么导入demo文件
  • 义乌市网站建设代理家教网站开发公司
  • 网站手机版怎么做的怎么做娱乐电玩网站
  • 深圳市住房和建设局网站登录比较知名的企业
  • 沧州免费网站建设自学网站开发流程
  • 站长工具seo综合查询可以访问安卓android系统下载
  • 万网部署wordpress发不出邮件广州网站优化哪里有
  • 硅谷网站开发薪酬服务器域名ip网址大全
  • 爱有声小说网站捡个校花做老婆页面模板怎么没有了
  • 做静态网站接单百度推广助手app下载
  • 合肥网站建站报广告代理汕头网站定制
  • 网站关键字个数安卓程序开发
  • 金华建设公司网站注册安全工程师建设工程网站
  • 佛山房地产网站建设seo排名是什么