第10课:链表的删除
进度 0/24
✂️
链表的删除
跨线接续,干净利落摘节点!
📖知识引入
🔍找前驱
删除第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课完成!继续探索下一课吧 🚀
