leetcode —— 19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
————————
(1)使用 双指针,首先第一个指针先从头节点移动n步,然后让双指针同时向前移动,知道有一个指针移动到队列的尾部。这里注意在头节点head前加了一个空节点。这样能避免出现的边界问题。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = Noneclass Solution:def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:node=ListNode(-1) # 创建一个空指针node.next=head # 指针的下一个节点为headfirst=second=node # 创建啥双指针for i in range(n): # 使第一个指针移动n位first=first.nextwhile first.next: # 使两个指针同时移动first=first.nextsecond=second.nextsecond.next=second.next.next # 删除倒数第N个结点return node.next
(2)使用递归,每次递归返回的是当前节点的下一个节点。同时返回的时候使所表示的属于逆序的值m加一。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = Noneclass Solution:def __init__(self):self.m = 0def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:if not head:return Nonehead.next = self.removeNthFromEnd(head.next,n) # 返回当前节点的下一个节点self.m += 1 当前节点属于倒数第几个节点return head.next if self.m==n else head # 根据当前节点是否是倒数第N个结点决定返回的是当前节点,还是当前节点的下一个节点
leetcode —— 19. 删除链表的倒数第N个节点相关推荐
- [链表|多解法] leetcode 19 删除链表的倒数第N个节点
[链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...
- 【亡羊补牢】挑战数据结构与算法 第59期 LeetCode 19. 删除链表的倒数第N个节点(链表)
仰望星空的人,不应该被嘲笑 题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. ...
- leetcode 19. 删除链表的倒数第N个节点(双指针)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...
- [leetcode]19.删除链表的倒数第N个节点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] ...
- LeetCode 19删除链表的倒数第N个节点-中等
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: ...
- Leetcode 19. 删除链表的倒数第N个节点
原题链接 解法:双指针 思路:第一个点可以能被删除,所以需要一个虚拟头节点.被删除的点位于倒数第n的位置,因为是单链表,即找到倒数n + 1最后,想要删除这个节点必须要保留它的前一个节点使其p-> ...
- C++ leetcode 19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
一.思路: 遍历一遍存储节点到vector数组中,然后利用数组指向倒数第n个,将倒数n-1的节点的next指向倒数n的next 二.代码: class Solution { public:ListNo ...
- Leetcode算法Java全解答--19. 删除链表的倒数第N个节点
Leetcode算法Java全解答–19. 删除链表的倒数第N个节点 文章目录 Leetcode算法Java全解答--19. 删除链表的倒数第N个节点 题目 想法 结果 总结 代码 我的答案 大佬们的 ...
- 领扣(LeetCode)删除链表的倒数第N个节点 个人题解
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1 ...
最新文章
- java实体外键_如何在JPA中添加用户实体和好友关系实体的外键
- R语言ggplot2可视化NHANES数据集年龄和身高的关系并按照性别因子分析男性和女性的差异
- Win64 驱动内核编程-18.SSDT
- hdu 模拟 贪心 4550
- Windows 服务全攻略(1)
- 图像检索中为什么仍用BOW和LSH
- vim编辑器的常用技巧
- mysql为什么要分库_我们为什么要分库分表
- L1为什么具有稀疏性
- Windows下怎样设置jar包开机自启动运行
- Android libcore添加JNI调用Hal层接口问题
- vi编辑器的学习使用(十三)
- ZOJ-1654 Place the Robots 拆行拆列构图+二分匹配 Or 最大独立点集+TLE
- pythonandroid自动化测试仪器_使用Python进行Android自动化测试
- linux修改文件用户组,linux命令 修改文件、文件夹所属用户、用户组
- 水星路由器DNS服务器未响应,水星路由器进不去设置怎么办
- 如何用更短时间写出高质量的博客文章经验分享
- 【渝粤教育】国家开放大学2018年秋季 1020t国际私法 参考试题
- 机器学习-关键词:正则化、过拟合、决策树
- python和按键精灵哪个稳定_按键精灵教程,学了这个你也能做出稳定的脚本