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

进阶:你能尝试使用一趟扫描实现吗?

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 链表中结点的数目为 sz
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz

思路:求出链表的长度,删除倒数第N个节点

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
# class Solution:
#     def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
#         dummy = ListNode(0, head)
#         first = head
#         second = dummy
#         for i in range(n):
#             first = first.next#         while first:
#             first = first.next
#             second = second.next#         second.next = second.next.next
#         return dummy.nextclass Solution:# def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:#     def getLength(head: ListNode) -> int:#         length = 0#         while head:#             length += 1#             head = head.next#         return length#     dummy = ListNode(0, head)#     length = getLength(head)#     cur = dummy#     for i in range(1, length - n + 1):#         cur = cur.next#     cur.next = cur.next.next#     return dummy.nextdef removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:def getLength(head:ListNode)->int:length = 0while head:length+=1head = head.nextreturn lengthdummy = ListNode(0,head)length = getLength(head)cur = dummyfor i in range(1,length-n+1):cur = cur.nextcur.next = cur.next.nextreturn dummy.next

[leetcode]19.删除链表的倒数第N个节点相关推荐

  1. [链表|多解法] leetcode 19 删除链表的倒数第N个节点

    [链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...

  2. 【亡羊补牢】挑战数据结构与算法 第59期 LeetCode 19. 删除链表的倒数第N个节点(链表)

    仰望星空的人,不应该被嘲笑 题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. ...

  3. leetcode 19. 删除链表的倒数第N个节点(双指针)

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...

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

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...

  5. LeetCode 19删除链表的倒数第N个节点-中等

    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: ...

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

    原题链接 解法:双指针 思路:第一个点可以能被删除,所以需要一个虚拟头节点.被删除的点位于倒数第n的位置,因为是单链表,即找到倒数n + 1最后,想要删除这个节点必须要保留它的前一个节点使其p-> ...

  7. C++ leetcode 19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

    一.思路: 遍历一遍存储节点到vector数组中,然后利用数组指向倒数第n个,将倒数n-1的节点的next指向倒数n的next 二.代码: class Solution { public:ListNo ...

  8. Leetcode算法Java全解答--19. 删除链表的倒数第N个节点

    Leetcode算法Java全解答–19. 删除链表的倒数第N个节点 文章目录 Leetcode算法Java全解答--19. 删除链表的倒数第N个节点 题目 想法 结果 总结 代码 我的答案 大佬们的 ...

  9. 领扣(LeetCode)删除链表的倒数第N个节点 个人题解

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1 ...

最新文章

  1. TCP/IP详解--第十八章
  2. DestroyJavaVM
  3. 带有无参数的存储过程
  4. UML-- plantUML安装
  5. 组合数学练习题(二)——Chemist
  6. 求某一维度的最大值_高中数学函数求最值常用方法总结
  7. play ---------idea
  8. Python基础(7) - 函数
  9. C/C++笔记(01):容易出错的几个库函数
  10. mysql数据库实操笔记20170418
  11. Python绘图——RGB颜色对照表
  12. java爬虫爬取豆瓣电影_小爬虫之爬取豆瓣电影排行榜
  13. android设置文件存储大小,Android实现把文件存放在SDCard的方法
  14. 三色旗问题中的快排应用
  15. python学习第一课——环境配置+比着葫芦画个瓢
  16. 微信小程序登录 获取头像不显示
  17. 在Linux中,如何找到并杀掉僵尸进程?
  18. 用Python画环环相扣的奥运五环
  19. Unity 0.Interactive Tutorials
  20. 微商红利落幕,互联网创业如何破局?

热门文章

  1. 冷静对待你遇到的所有Java内存异常
  2. 设计模式--装饰模式
  3. 《RabbitMQ实战指南》笔误及改进记录
  4. Kafka科普系列 | 什么是LW和logStartOffset?
  5. LiveVideoStack公众号内容改版通知
  6. Twitch未来五年的视频编码战略:从H.264到 AV1
  7. H.264专利费不受FRAND限制 Android设备商受影响
  8. 专访 | PP云技术副总监:如何使用机器学习算法优化分发链路
  9. Java多线程之线程池配置合理线程数
  10. 从无盘启动看 Linux 启动原理