K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
已知单链表节点定义如下:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {} };
现有一个存在于非空单链表中的节点p,我们无法获取该节点的前驱节点,且p并非链表的尾节点。
p = p->next; delete p;,将p指向其后继节点后删除p,完成删除操作
p = p->next; delete p;
p->next = p->next->next; delete p;,修改p的next指针后直接删除p,完成删除操作
p->next = p->next->next; delete p;
ListNode* temp = p->next; p->val = temp->val; p->next = temp->next; delete temp;,将后继节点的值复制到当前节点,删除后继节点以等价删除原节点
ListNode* temp = p->next; p->val = temp->val; p->next = temp->next; delete temp;
delete p; p = nullptr;,直接释放p节点内存并将指针置空,完成删除操作
delete p; p = nullptr;