当前位置: 首页 > 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/751036/

相关文章:

  • 东营网站建设制作彩票计划网站怎么做
  • 南通江苏网站建设晋城有做网站的吗
  • 济南企业网站推广方法深圳龙岗设计
  • 乐清网站定制公司wordpress 文档
  • 中国建设银行官方网站纪念币学建筑设计后悔死了
  • 那个网站做百科好过做化工贸易要用那些网站推广
  • 免费html网页模板素材网站wordpress free 2017
  • 贵金属网站源码怎么做souq网站
  • 彩票站自己做网站英涛祛斑 网站开发
  • 网站类型安徽省合肥市建设局网站
  • 浏阳市网站建设wordpress social
  • 广州网站设计报价莒南县建设局网站
  • 如何组织公司做网站杭州巴顿品牌设计
  • 广西建设工程协会网站查询系统网站正能量大全
  • 注册网站查询官网宁波公司网站首页优化
  • 宁波市高等级公路建设指挥部网站桂林微信网站设计
  • 工业和信息化部网站备案系统怎么登录蛋糕网站建设规划书
  • 两学一做知识竞赛网站dw怎么制作好看的个人网页
  • 昆明网站设计公司有内涵大气的公司名字
  • 网站建设 流程图大连网站的建设
  • 网站建设公司简介范文北京做手机网站设计
  • 网站建设公司找上海站霸电子商务网站软件建设的
  • 网站开发不用jsp佛山外贸网站建设新闻
  • 番禺做网站要多少钱做阿里巴巴网站运营
  • 纯代码添加wordpress网站底部导航ui培训的课程都有哪些
  • 如何套用网站模板自己做的网站可以百度推广吗
  • 安徽论坛网站建设网站建设公司哪家最好
  • 做彩票交流网站犯法吗上海知名网站建设公司排名
  • 官方门户网站j建设的必要性logo在线设计制作工具
  • 网页设计模板网站免费下载网站页面打开速度慢