剑指offer_13(在O(1)的时间内删除链表中的某一个元素)
来源:互联网 发布:c语言open函数 编辑:程序博客网 时间:2024/05/22 11:47
题意:在O(1)的时间内删除链表中的某一个元素
思路:若链表只有一个元素,那么就是删除这一唯一元素;若删除的是链表最后一个元素,那么只能从头遍历;若删除的是只是中间的一个元素,那么将待删除的元素的下一个元素的值赋给待删除元素,再将待删除元素的下一个元素给删除即可。
代码:
package MianShiTi_13;import java.awt.List;public class MianShiTi_13 { public static class ListNode { int value; ListNode next; } public static ListNode deleteNode(ListNode head , ListNode toBeDeleted){ if(head == null || toBeDeleted == null){ return head; } if(head == toBeDeleted){ return head.next; } if(toBeDeleted.next == null){ ListNode tmp = head; while (tmp.next != toBeDeleted) { tmp = tmp.next; } tmp.next = null; } else{ toBeDeleted.value = toBeDeleted.next.value; toBeDeleted.next = toBeDeleted.next.next; } return head; } public static void printListValue(ListNode head) { while (head != null) { System.out.print(head.value+" "); head = head.next; } } public static void main(String[] args) { ListNode head = new ListNode(); head.value = 1; head.next = new ListNode(); head.next.value = 2; ListNode middle = head.next.next = new ListNode(); head.next.next.value = 3; head.next.next.next = new ListNode(); head.next.next.next.value = 4; ListNode last = head.next.next.next.next = new ListNode(); head.next.next.next.next.value = 5; //删除节点为空 head = deleteNode(head, null); printListValue(head); System.out.println(); //删除中间节点 head = deleteNode(head, middle); printListValue(head); System.out.println(); //删除末尾节点 head = deleteNode(head, last); printListValue(head); }}
0 0
- 剑指offer_13(在O(1)的时间内删除链表中的某一个元素)
- 剑指offer--在O(1)时间内删除链表结点
- O(1)时间内删除单向链表中的一个节点
- 在O(1)时间内删除链表结点
- 在O(1)时间内删除链表结点
- 在O(1)时间内删除链表节点
- 在O(1)时间内删除链表指定结点
- 在O(1)时间内删除单向链表结点
- 在O(1)时间内删除链表节点
- 60 在 O(1)时间内删除链表结点
- 在O(1)时间内删除链表节点
- 单向链表在O(1)时间内删除一个节点
- 在O(1)时间内删除链表结点
- 13 在O(1)时间内删除链表节点
- java 在o(1)时间内删除链表结点
- 在O(1)时间内删除链表节点
- 13在O(1)时间内删除链表结点python
- 在O(1)的时间内删除链表的一个节点
- smmu学习笔记之smmu v3 初始化
- 消灭 Bug!推荐几个给力的开源 Bug 跟踪工具
- ST工程类笔试题
- cmd命令快速启动和关闭MySQL服务
- Dynamic Web project,Jsp可正常访问,servlet出现404,刷新出现Http500,解决方式
- 剑指offer_13(在O(1)的时间内删除链表中的某一个元素)
- Android的JNI【实战教程】1⃣️--java和c/c++的那些事
- namespace
- java读取ppt,java导出ppt
- POJ 1466 Girls and Boys(最大独立集)
- Swift开发:UIAlertController 弹框
- 使用SIFT描述子计算模板旋转角度
- Eclipse通过maven构建SpringMVC项目
- 验证是否符合手机号格式