LintCode之在O(1)時間複雜度刪除鏈表

題目描述:node

 

分析:由於題目要求不能用循環,並且只給了要刪除的節點,並無給鏈表。因此我沒法取得要刪除節點的前一個節點,只能在待刪除的節點以及下一個節點上作文章。個人思路是:將待刪除的節點的下一個節點的值賦給待刪除節點,而後讓待刪除的節點的next指向待刪除節點的next的next。this

個人代碼:spa

 1 /**
 2  * Definition for ListNode.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int val) {
 7  *         this.val = val;
 8  *         this.next = null;
 9  *     }
10  * }
11  */
12 
13 
14 public class Solution {
15     /*
16      * @param node: the node in the list should be deletedt
17      * @return: nothing
18      */
19     public void deleteNode(ListNode node) {
20         // write your code here
21         if(node == null) {
22             return ;
23         }
24         node.val = node.next.val;
25         node.next = node.next.next;
26     }
27 }
相關文章
相關標籤/搜索