双链表的删操作 📅 2026/7/13 22:12:58 第一种情况在双链表中删除一个节点在双链表中删除节点时需要调整前驱节点和后继节点的指针来摘除目标节点// 创建一个双链表 head : createDoublyLinkedList([]int{1, 2, 3, 4, 5}) // 删除第 4 个节点 // 先找到第 3 个节点 p : head for i : 0; i 2; i { p p.Next } // 现在 p 指向第 3 个节点我们将它后面那个节点摘除出去 toDelete : p.Next // 把 toDelete 从链表中摘除 p.Next toDelete.Next if toDelete.Next ! nil { toDelete.Next.Prev p } // 把 toDelete 的前后指针都置为 nil 是个好习惯可选 toDelete.Next nil toDelete.Prev nil第二种情况在双链表头部删除元素// 创建一条双链表 head : createDoublyLinkedList([]int{1, 2, 3, 4, 5}) // 删除头结点 toDelete : head head head.next head.prev nil // 清理已删除节点的指针 toDelete.next nil第三种情况在双链表尾部删除元素// 创建一条双链表 head : createDoublyLinkedList([]int{1, 2, 3, 4, 5}) // 删除尾节点 p : head // 找到尾结点 for p.next ! nil { p p.next } // 现在 p 指向尾节点 // 把尾节点从链表中摘除 p.prev.next nil // 把被删结点的指针都断开是个好习惯可选 p.prev nil