码迷,mamicode.com
首页 > 其他好文 > 详细

删除链表的节点

时间:2019-03-04 15:50:33      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:else   image   ==   com   ext   删除链表   src   nod   tno   

题目:

在O(1)时间内删除链表节点。给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。

 

解答:

 1 public class Solution {
 2 
 3     public static void deleteNode(ListNode head, ListNode node) {
 4         if(head == null || node == null) {
 5             return;
 6         }
 7 
 8         // 待删除的节点不是尾节点
 9         if(node.next != null) {
10             ListNode tmp = node.next;
11             node.val = tmp.val;
12             node.next = tmp.next;
13         } else if(node == head) { // 头节点
14             head = head.next;
15             node = null;
16         } else {
17             // 尾节点
18             ListNode tmp = head;
19             while(tmp.next != node) {
20                 tmp = tmp.next;
21             }
22 
23             tmp.next = null;
24             node = null;
25         }
26     }
27 }

 

技术图片

 

删除链表的节点

标签:else   image   ==   com   ext   删除链表   src   nod   tno   

原文地址:https://www.cnblogs.com/wylwyl/p/10470958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!