K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
已知单链表的节点定义如下:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {} };
现需要删除指针p指向的非尾节点,且无法获取该节点的前驱节点,下列哪个代码实现是正确的?
delete p;
p->next = p->next->next; delete p;
p->val = p->next->val; ListNode* temp = p->next; p->next = temp->next; delete temp;
ListNode* temp = p; while(temp->next != nullptr) { temp->val = temp->next->val; temp = temp->next; } delete temp;