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

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

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

    • 题目
    • 代码
      • 1. 获取长度
      • 2. 双指针

题目

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

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

在这里插入图片描述示例 2:

输入:head = [1], n = 1
输出:[]

示例 3:

输入:head = [1,2], n = 1
输出:[1]

代码

1. 获取长度

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):def removeNthFromEnd(self, head, n):""":type head: Optional[ListNode]:type n: int:rtype: Optional[ListNode]"""if head is None:return Nonecur = headlenth = 0while cur:cur = cur.nextlenth += 1if lenth == n:return head.nextcur = headfor i in range(lenth-n-1):cur = cur.nextcur.next = cur.next.nextreturn head

2. 双指针

思路: 快指针先走n+1步,等到NULL时,慢指针到倒数第n个前面一个节点

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):def removeNthFromEnd(self, head, n):""":type head: Optional[ListNode]:type n: int:rtype: Optional[ListNode]"""# 双指针dummy_head = ListNode(0, head)slow = fast = dummy_headfor i in range(n+1):fast = fast.nextwhile fast:slow = slow.nextfast = fast.nextslow.next = slow.next.nextreturn dummy_head.next

相关文章:

  • Nacos 配置管理案例:nacos-spring-cloud-config-example详解
  • Vue-列表渲染
  • MFC坦克大战游戏制作
  • Apifox 的“前置URL”和“请求地址”区别
  • 决策分析工具篇
  • ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对多Navigation Property(C#)
  • STM32中,如何理解看门狗
  • Cisco Packer Tracer 中 VLAN 与三层交换机
  • 算法第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 软件项目需求说明书简要模板
  • 【计网】分片
  • 大模型备案关键词各地要求与流程材料解析
  • Cyberduck 是什么
  • 【Tips】关于PCI和PCIe的配置空间差异和io/memory io读写
  • One Year~
  • 如何用Go创建一个 deployment 到容器拉起来的全流程
  • Python 迭代器:从基础到高级
  • 字体查看器
  • meilisearch docker 简单安装
  • 【前端】Hexo一键生成目录插件推荐_放入Hexo博客
  • 网站改版设计注意事项/新浪微博指数查询
  • 大理建设工程信息网站/合肥百度搜索优化
  • wordpress建立视频网站/某网站seo策划方案
  • wordpress文章输出函数/百度seo排名优化助手
  • 企业网站建设需要许可证吗/网站自助建站系统
  • 做网站的费用计入哪个科目/app注册拉新平台