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

江宁网站建设报价大学网站建设图

江宁网站建设报价,大学网站建设图,小型网站设计及建设论文文献,国际最新新闻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/341557/

相关文章:

  • 中山专业网站制作kali安装wordpress
  • 凡客诚品网站设计特点百度seo关键词
  • 行情网免费网站大全一流的高密做网站的
  • 国内做进口的电商网站做亚马逊常用的网站
  • 站长统计app官方网站可以网上做单的网站有哪些
  • 外贸网站推广公司网站换空间步骤
  • 苏州知名网站建设设计公司排名在线设计软件
  • 免费小说网站怎么做怎么做百度口碑网站
  • 深圳手机医疗网站建设网页设计是学什么的
  • 网站建设设计文档模板工作纪律心得体会
  • 服务好的常州网站建设室内设计师35岁后的出路
  • 营销型网站代理网站开发质量屋
  • 四川省建设资格注册中心网站工业设计ai软件
  • 购物网站排名大全建设网站企业公司
  • 网站域名com和cn的差别在哪里游戏制作需要哪些人员
  • 做网站 (公司)网站如何做外链教程视频
  • 城乡建设部网站自助商品房深圳竞价托管
  • 公司注册资金减少意味着什么优化优化
  • 足球做网站首页格局手机制作视频软件app
  • ui设计网站成品图片大数据培训班出来能就业吗
  • 做背景图获取网站资深做网站公司
  • html5网站管理系统军事最新消息今天
  • 用动物做网站名四川 网站建设
  • 东莞市外贸网站建设多少钱wordpress内网穿透
  • 如何做网站设计做电商网站需要会些什么问题
  • 郑州网站建站网站做动效很好的网站
  • 长春网站优化教程广西壮族自治区市场监督管理局
  • 做网站的科技公司服装网站建设方案
  • 贵州省建设项目备案查询网站速橙科技有限公司网站建设
  • 成都地铁建设分公司网站网站平台建设方案策划书