🐵指尖猴全新升级
第10课:链表的删除
✂️

链表的删除

跨线接续,干净利落摘节点!

📖知识引入

🔍找前驱
删除第i个节点前,先定位第i-1个节点(前驱)
🌉跨线接续
让前驱的next跳过目标节点,直接指向目标的下一个
🧹delete释放
被摘下的节点用delete释放内存,避免内存泄漏
🛡️判空保护
删之前确认链表非空、目标存在,空链硬删会崩
💡
删除前把目标节点地址存一份tmp,接续完成后delete tmp,一气呵成不丢节点

🔍删除p后面的节点

// 删除 p 的后继节点
Node* tmp = p->next;      // 1. 暂存目标节点
p->next = tmp->next;      // 2. 跨线接续:p直连目标的下一个
delete tmp;               // 3. 释放被删节点的内存

// 特别地:删除头节点
Node* tmp2 = head;
head = head->next;        // 头指针后移
delete tmp2;

存、跳、删三步走,节点摘除滴水不漏

🎯小测验

第1题:删除p的后继节点,关键操作是?

第2题:被删除的节点为什么要delete?

第3题:删除头节点后head应指向?

📝本课知识点

  • ✓删除三步:存tmp、跨线、delete
  • ✓删头节点记得head后移
  • ✓删前判空是保命符
第10课完成!继续探索下一课吧 🚀