双链表的增操作
📅 2026/7/13 14:33:48
👁️ 阅读次数
📝 编程学习
第一种情况:在双链表头部插入新元素,在双链表头部插入元素,需要调整新节点和原头节点的指针
// 创建一条双链表 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
编程学习
技术分享
实战经验