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 }
相关文章
相关标签/搜索