[LintCode] 在O(1)时间复杂度删除链表节点

 1 /**
 2  * Definition of ListNode
 3  * class ListNode {
 4  * public:
 5  *     int val;
 6  *     ListNode *next;
 7  *     ListNode(int val) {
 8  *         this->val = val;
 9  *         this->next = NULL;
10  *     }
11  * }
12  */
13 class Solution {
14 public:
15     /**
16      * @param node: a node in the list should be deleted
17      * @return: nothing
18      */
19     void deleteNode(ListNode *node) {
20         // write your code here
21         ListNode* next = node -> next;
22         node -> val = next -> val;
23         node -> next = next -> next;
24         next -> next = NULL;
25         delete next;
26     }
27 };

 

posted @ 2015-07-07 20:03  jianchao-li  阅读(182)  评论(0编辑  收藏  举报