You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现:如何在双向链表中间添加整数或字符串元素?

Java双向链表:在指定值的两个节点间插入元素的实现方案

你的现有代码已经实现了核心的addBetween方法,要在值为40和30的节点之间插入元素,关键是找到值为40的前驱节点和值为30的后继节点,再调用addBetween完成插入。以下是具体实现步骤和代码修改:

1. 添加查找节点的辅助方法

首先需要一个根据元素值查找对应Node对象的工具方法,注意用equals而非==比较元素(适配包装类、字符串等类型的正确比较):

// 在DoublyLinkedList类中添加
private Node<E> findNode(E value) {
    if (isEmpty()) return null;
    Node<E> current = header.getNext();
    while (current != trailer) {
        if (value.equals(current.getElement())) {
            return current;
        }
        current = current.getNext();
    }
    return null;
}

2. 实现公开的插入方法

添加一个公开方法,用于在指定值的两个节点之间插入新元素,同时做合法性校验(确保前驱节点的下一个确实是后继节点,避免插入错误位置):

// 在DoublyLinkedList类中添加
public boolean insertBetweenValues(E prevValue, E nextValue, E newElement) {
    Node<E> prevNode = findNode(prevValue);
    Node<E> nextNode = findNode(nextValue);
    
    // 校验:两个节点都存在,且prevNode的下一个是nextNode
    if (prevNode == null || nextNode == null || !prevNode.getNext().equals(nextNode)) {
        System.out.println("无法找到指定的相邻节点对");
        return false;
    }
    
    addBetween(newElement, prevNode, nextNode);
    return true;
}

3. 测试插入功能

修改Main类中的测试代码,调用新方法在40和30之间插入元素(比如插入25):

class Main {
    public static void main(String[] args) {
        // 注意指定泛型类型,避免原始类型警告
        DoublyLinkedList<Integer> list = new DoublyLinkedList<>();
        // Add nodes to the list
        list.addFirst(10);
        list.addFirst(20);
        list.addFirst(30);
        list.addFirst(40);
        list.addFirst(50);
        list.removeFirst();
        list.removeLast();
        
        // 在值为40和30的节点之间插入25
        list.insertBetweenValues(40, 30, 25);
        
        // print the nodes of DoublyLinkedList
        System.out.println(list); // 输出:(40--> 25--> 30--> 20)
    }
}

关键逻辑说明

  • findNode方法遍历链表,从header的下一个节点开始,直到trailer,找到匹配值的节点返回。
  • insertBetweenValues方法先校验两个节点的合法性:必须都存在,且前驱节点的直接后继就是目标后继节点,防止插入到错误的位置。
  • 校验通过后,直接调用已有的addBetween方法完成节点插入,复用现有逻辑保证代码一致性。

内容的提问来源于stack exchange,提问作者kolakolya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:10:25