K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
已知单链表节点定义如下:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {} };
现有一个非空单链表,待删除的节点p不是尾节点且无法直接获取其前驱节点,以下能正确完成节点删除的代码是?
void deleteNode(ListNode* p) { delete p; }
void deleteNode(ListNode p) { ListNode temp = p->next; p = temp; delete temp; }
void deleteNode(ListNode* p) { p->next = p->next->next; delete p->next; }
void deleteNode(ListNode* p) { p->next = nullptr; delete p->next; }