LeetCode之 Delete Node in a Linked List

 /*由於不知道前驅結點,因此無法刪除當前結點的。爲了完成題目中的要求,
 唯有一個辦法:用後面結點的值將當前結點的值覆蓋掉。*/
class Solution {
public:
    void deleteNode(ListNode* node) {
        if(node == nullptr || node->next == nullptr) return;
        ListNode *pre = node;
        node->val = node->next->val;
        node = node->next;
        while(node->next != nullptr){
            node->val = node->next->val;
            node = node->next;
            pre = pre->next;
        }
        delete node;
        pre->next = nullptr;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章