《剑指offer》面试题13 在O(1)时间删除链表节点 Java版
2024-10-07 11:30:38
这道题的关键是知道找到尾节点的前一个节点必须遍历,而且这样做了之后总的时间复杂度还是O(1),以及如何不破坏链表删除一个已知节点
public ListNode delete(ListNode head, ListNode toBeDelete){
//如果头节点为空或者只有一个节点
if(head == null || head.next == null)return null;
//如果要删除的节点在末尾
if(toBeDelete.next == null){
ListNode index = head;
while(index.next!= toBeDelete){
index = index.next;
}
index.next = index.next;
}else{//要删除的节点不在末尾
toBeDelete.val = toBeDelete.next.val;
toBeDelete.next = toBeDelete.next.next;
}
return head;
}
最新文章
- MySql 连接字符串
- linux应用程序开发-进程程序设计
- iphone按home键后,正在运行的程序是否退出了呢?
- 多功能表单填报系统V1.2.1-适用于在线报名系统、调查、数据收集等
- powerdesigner设置表主键列为自动增长。
- hdu 4618(最大回文子矩阵)
- 【LINUX】编程笔记
- Minimal Ratio Tree
- AOJ 0118 深度优先搜索
- 听翁恺老师mooc笔记(7)--字符串1
- netty 之 telnet HelloWorld 详解
- git基本概念
- 关于php下的ajax赋值传值的调试
- 【C#】语音识别 - System.Speech
- 全国高校绿色计算大赛 预赛第二阶段(Python)第1关:统计分数的麻烦
- 【转载并整理】JAVA解析或生成xml的四种方法
- 开发中遇到的一些mongoose的问题
- 【模板】网络流-最大流模板(Dinic)
- c++11 时间类 std::chrono
- Qt编译出错:“Cannot find file...... .pro.";
热门文章
- 机器学习中的偏差(bias)和方差(variance)
- es6的...用法
- Java面试之基础篇(1)
- 开发 .swan 文件
- Floyd求解最短路
- R 保存图片——tiff
- UNR#3 Day1——[ 堆+ST表+复杂度分析 ][ 结论 ][ 线段树合并 ]
- 180128-----Java面试题
- 插头DP讲解+[BZOJ1814]:Ural 1519 Formula 1(插头DP)
- curl_init raw传递json参数