1.描述:给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
2.思路:所要删除的节点已给出,只需将该节点的值附成此节点的下一个节点的值,并将该节点的next指针指向它的next的next即可。
3.代码:void deleteNode(ListNode *node) {
if(node->next!=NULL)
{
node->val=node->next->val;
node->next=node->next->next;
}
}
4.感想:此题只需将节点的next不为空的代码写出即可,当节点的next为空时,程序仍可通过。