給定單鏈表中非尾節點的指針,刪除該節點。無法訪問頭節點。
例:1→2→3→4,給節點 3,刪除後 1→2→4
因無法訪問前驅,無法直接 pre->next = node->next。
改為:將下一個節點的值拷貝到當前節點,然後刪除下一個節點。
class Solution {
public:
void deleteNode(ListNode* node) {
if (!node || !node->next) return; // 題目保證非尾節點
ListNode* tmp = node->next;
node->val = tmp->val;
node->next = tmp->next;
delete tmp;
}
};