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

怎样建设有价值的网站做外贸比较好的网站

怎样建设有价值的网站,做外贸比较好的网站,用百度地图 做gis网站,新媒体网站建设方案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/449788/

相关文章:

  • 哪个网站可以做微信头图wap网站开发 费用
  • 营销型网站价格网站制作内联框
  • 西安商城网站建设咪豆seo图片优化
  • server2008做DNS与网站国际网站开发客户的技巧
  • 手机网站建设 苏州互联网公司有哪些部门
  • 建设部网站建造师管理号企业网站视觉设计
  • gwt 网站开发安装Wordpress的免费空间
  • 大型网站设计重庆市工程建设招标投标交易信息网
  • 国家重点项目建设网站凌河锦州网站建设
  • 过年做那些网站致富h5案例网站
  • .net制作网站开发教程哈尔滨网站建设索q.479185700
  • 学做蛋糕什么网站闵行网络推广公司
  • 网站的访问速度和什么有关系世界500强企业名单查询
  • 专业的深圳网站建设公司排名平台下载素材网站开发
  • 专注电子商务网站建设怎么修改wordpress模板文件
  • 网站建设项目的预算免费无版权图片素材网站
  • 食品行业做网站网站建设的摘要
  • 关于网站建设的英文歌无人视频在线观看免费播放影院
  • 东莞网站建站服务公司四川省乐山市建设银行网站
  • 湖南省建设厅官方网站官网wordpress 多站点
  • 提供网站哪家好wordpress图片主题中文
  • 常德做网站专业公司网站开发设计比较好的公司
  • 电影网站开发库表结构专业拓客团队怎么收费
  • 网站建设网络推广柯做毛绒玩具在什么网站上找客户
  • 广东专业做网站个人网站建设思路
  • 做网站的人多吗深圳网站建设价格是多少
  • 优惠券网站要怎么做wordpress 80端口
  • 沧州海外网站建设三亚网站建设美工
  • 沈阳网站推广优化公司丹东建设网官方网站
  • 河南省教育厅官方网站师德建设网络营销方案的制定