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

力扣2095.删除链表的中间节点(java快慢指针)

Problem: 2095. 删除链表的中间节点

文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code

思路

利用快慢指针,快指针每次走两步,慢指针每次走一步(循环退出条件是fast指针不为空同时fast.next不为空),但是我们容易发现这样到最后slow指针正好指向我们需要删除的节点,由于没有前指针,这样我们不便操作。此时可以借助虚拟头节点解决此问题。

解题方法

1.慢指针指向虚拟头节点,快指针指向链表头节点
2.快指针每次走两步,慢指针走一步(循环退出条件是fast指针不为空同时fast.next不为空);
3.最后将慢指针指向的节点的next指针指向其下一个节点的下一个节点(solw.next = sole.next.next)

复杂度

  • 时间复杂度:

O ( n ) O(n) O(n)

  • 空间复杂度:

O ( 1 ) O(1) O(1)

Code


/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode deleteMiddle(ListNode head) {ListNode dummy = new ListNode();dummy.next = head;ListNode fast = head;ListNode slow = dummy;while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}slow.next = slow.next.next;return dummy.next;}
}
http://www.lryc.cn/news/218352.html

相关文章:

  • 【Vue-Element-Admin】table添加自定义索引
  • 0008Java安卓程序设计-ssm基于Android平台的健康管理系统
  • Mac 禁用一些高占用cup的进程
  • layui form表单 调整 label 宽度
  • 轻量封装WebGPU渲染系统示例<12>- 基础3D对象实体(源码)
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • 【PY】倒计时日历
  • windows mysql安装
  • 【蓝桥杯省赛真题42】Scratch舞台特效 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解
  • Kafka(二)消息系统设计
  • 【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的解决方案)
  • R语言_RColorBrewer包--全平台可用
  • VulnHub DC-4
  • Python 查询 IP 地址段,并获取 Hostname
  • [架构之路-251/创业之路-82]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 商业智能、决策支持系统、知识管理
  • linux shell sh 脚本开机自启动
  • 欧科云链研究院:如何降低Web3风险,提升虚拟资产创新的安全合规
  • el-table中的el-input标签修改值,但界面未更新,解决方法
  • Python 中的 Gzip 解压
  • JVM常用命令
  • leetcode做题笔记213. 打家劫舍 II
  • 多输入多输出 | Matlab实现WOA-RBF鲸鱼算法优化径向基神经网络多输入多输出预测
  • 玻色量子签约移动云“五岳”量子云计算创新加速计划!
  • Postgresql在linux环境下以源码方式安装
  • vivo发布“蓝心千询”自然语言对话机器人
  • Python基础入门例程39-NP39 字符串之间的比较(运算符)
  • java中的Thread类解析
  • 如何正确清理DNS缓存
  • Git从基础到实践
  • C 保留字解释