双向链表删除节点时间复杂度_「十分钟学算法」删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
题解:
我们可以使用两个指针而不是一个指针。第一个指针从列表的开头向前移动 n+1n+1 步,而第二个指针将从列表的开头出发。现在,这两个指针被 nn 个结点分开。我们通过同时移动两个指针向前来保持这个恒定的间隔,直到第一个指针到达最后一个结点。此时第二个指针将指向从最后一个结点数起的第 nn 个结点。我们重新链接第二个指针所引用的结点的 next 指针指向该结点的下下个结点。
删除链表的倒数第 N 个元素
public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode first = dummy; ListNode second = dummy; // Advances first pointer so that the gap between first and second is n nodes apart for (int i = 1; i <= n + 1; i++) { first = first.next; } // Move first to the end, maintaining the gap while (first != null) { first = first.next; second = second.next; } second.next = second.next.next; return dummy.next;}
复杂度分析
时间复杂度:O(L)O(L),该算法对含有 LL 个结点的列表进行了一次遍历。因此时间复杂度为 O(L)O(L)。
空间复杂度:O(1)O(1),我们只用了常量级的额外空间。
双向链表删除节点时间复杂度_「十分钟学算法」删除链表的倒数第N个节点相关推荐
- python 文件路径_「按需学Python」 1. Glob库遍历路径/文件
小前言: 本人Python小白,因为最近想整理下近10几年的老照片,然后就有了写脚本批处理的想法.初始需求其实很简单,就是筛选自己想要的照片到指定文件夹,然后按照exif信息重命名照片为拍摄时间_拍摄 ...
- amd cpu不能在cmd环境下运行java代码_「我们一起学Java02」JDK、JRE、JVM简介,Java开发平台的搭建...
Hello,各位头条的读者大家好!接下来一段时间小编将和大家一起学习Java,"我们一起学Java"专题将会持续更新,欢迎大家关注.这里是"我们一起学Java" ...
- 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点
[LeetCode]剑指 Offer 22. 链表中倒数第k个节点 文章目录 [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 一.遍历 二.双指针 总结 一.遍历 先遍历统计链表长 ...
- python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点
题目 实现一个函数,一个可以删除单链表中倒数第k个节点 难度 简单 分析 本题比较简单,实现方法多种多样,这里提供一种方法 首先明确一点,在单链表中删除倒数第k个节点,需要找到他的前一个节点,让前一个 ...
- 刻意练习:LeetCode实战 -- Task11. 删除链表的倒数第N个节点
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- 青铜三人行之删除链表的倒数第N个节点
先说一个消息,为了方便互相交流学习,青铜三人行建了个微信群,感兴趣的伙伴可以扫码加下面的小助手抱你入群哦! 每周一题,代码无敌.这周,「青铜三人行」为你带来了一道关于"链表的题目" ...
- 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...
点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...
- 常考数据结构与算法:删除链表的倒数第n个节点
题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1-& ...
- LeetCode第19题;删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删 ...
最新文章
- 来来来,个人blog第一弹——WordPress的Linux运行环境
- 面试官出的MySQL索引问题,这篇文章全给你解决!
- javascript 基础下
- 使用LightBDD轻松实现行为驱动开发
- 随机梯度下降的实现细节
- php对接V免签支付教程_【全网首发】最新版影视小程序搭建教程完整版
- dictionary在python中什么意思_Python 字典(Dictionary)操作详解
- 从源码角度解释 fragment 坑(一)
- LeetCode93 Restore IP Addresses
- 深入理解java虚拟机笔记之一
- jqgrid本地数据例子_FMS财务系统:日常数据核对与处理
- 英语语法快速入门1--简单句(附思维导图)
- 特斯拉4D成像毫米波雷达与木牛科技早期开源的产品几乎一模一样?
- 宝塔实测-搭建LightPicture开源图床系统
- WLAN技术之WLAN安全
- 大学生计算机专业英文求职,计算机专业大学生英文求职信范文
- Mycat 分片规则---不以规矩,不能成方圆
- Windows 7 开机自动拨号 常用的五种方法
- 袖珍电子书打先锋,魔灯(Moodle)服务器做后盾
- 对讲机外装蓝牙对讲适配器方案