/*由于不知道前驱结点,因此无法删除当前结点的。为了完成题目中的要求,
唯有一个办法:用后面结点的值将当前结点的值覆盖掉。*/
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;
}
};