题目一:
在O(1)时间内删除链表节点。给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。
书本讲得不明就里
1 class Solution { 2 void DeleteNode(ListNode **listHead, ListNode *toDeleteNode) { 3 if (listHead == nullptr || toDeleteNode == nullptr)return; 4 if (*listHead == toDeleteNode) 5 *listHead = (*listHead)->next; 6 else 7 { 8 ListNode* p = *listHead; 9 while (p->next != nullptr) 10 { 11 if (p->next == toDeleteNode) 12 { 13 p->next = toDeleteNode->next; 14 break; 15 } 16 p = p->next; 17 } 18 } 19 } 20 };