AcWing 28. 在O(1)時間刪除鏈表結點

地址 https://www.acwing.com/problem/content/description/85/node

題目描述
給定單向鏈表的一個節點指針,定義一個函數在O(1)時間刪除該結點。算法

假設鏈表必定存在,而且該節點必定不是尾節點。編程

樣例函數

輸入:鏈表 1->4->6->8
      刪掉節點:第2個節點即6(頭節點爲第0個節點)

輸出:新鏈表 1->4->8

算法1
其實不喜歡這種trick的編程
這裏的刪除 實際上是將下一個節點的值賦給本身 而後將下一個節點刪除spa

C++ 代碼指針

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
        ListNode* next = node->next;
        node->val = next->val;
        node->next = next->next;
    }
};

做者:defddr
連接:https://www.acwing.com/solution/acwing/content/3379/
來源:AcWing
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索