面试题 02.03. 删除中间节点
删除中间节点
这道题是说只能访问中间某个位置的节点,然后要把它删除。
由于没给前驱指针,如果真的删了中间的节点,链表就断开了。所以考虑把下一个节点的值赋给当前节点,然后删除下一个节点,这样就相当于删除了中间节点。
void deleteNode(struct ListNode* node) {
node->val = node->next->val;
//把下一个节点的值赋给当前节点
node->next = node->next->next;
//删除下一个节点
}