双链表的增操作

📅 2026/7/13 14:17:11
双链表的增操作
第一种情况在双链表头部插入新元素在双链表头部插入元素需要调整新节点和原头节点的指针// 创建一条双链表 head : createDoublyLinkedList([]int{1, 2, 3, 4, 5}) // 在双链表头部插入新节点 0 newHead : DoublyListNode{val: 0} newHead.next head head.prev newHead head newHead第二种情况在双链表尾部加入新元素// 创建一条双链表 head : createDoublyLinkedList([]int{1, 2, 3, 4, 5}) tail : head // 先走到链表的最后一个节点 for tail.next ! nil { tail tail.next } // 在双链表尾部插入新节点 6 newNode : DoublyListNode{value: 6} tail.next newNode newNode.prev tail // 更新尾节点引用 tail newNode第三种情况在双链表中间插入新元素// 创建一条双链表 head : createDoublyLinkedList([]int{1, 2, 3, 4, 5}) // 想要插入到索引 3第 4 个节点 // 需要操作索引 2第 3 个节点的指针 p : head for i : 0; i 2; i { p p.next } // 组装新节点 newNode : DoublyListNode{val: 66} newNode.next p.next newNode.prev p // 插入新节点 p.next.prev newNode p.next newNode