📌  相关文章
📜  在链表中间插入节点的Java程序(1)

📅  最后修改于: 2023-12-03 15:08:06.666000             🧑  作者: Mango

在链表中间插入节点的Java程序

在链表中间插入节点是一个常见的操作,它可以用来在某个位置上添加元素。本文将介绍如何在Java中实现在链表中间插入节点的操作。

链表的基本概念

链表是由一系列节点组成的数据结构。每个节点包含两个域:一个数据域和一个指针域。数据域存储了节点的数据,指针域存储了下一个节点的地址。链表的头结点是第一个节点,它没有前驱节点。

在链表中间插入节点的实现

在链表中间插入节点需要找到要插入的位置,并将新节点插入到指定位置。通常使用循环遍历链表来查找要插入的位置。

代码实现

我们可以定义一个LinkedList类,其中包含一个Node内部类用于表示节点。在该类中,我们需要实现以下方法:

  • insertAtPosition(position, data):在链表的指定位置插入一个新节点。
public class LinkedList {
    public class Node {
        int data;
        Node next;
        public Node(int data) {
            this.data = data;
        }
    }

    private Node head;

    public void insertAtPosition(int position, int data) {
        // 创建一个新节点
        Node newNode = new Node(data);

        // 如果要插入的位置是第一个节点之前
        if (position <= 0) {
            newNode.next = head;
            head = newNode;
            return;
        }

        // 找到要插入的位置
        Node current = head;
        int index = 0;
        while (current != null && index < position - 1) {
            current = current.next;
            index++;
        }

        // 如果要插入的位置在链表尾部,直接将新节点添加到链表尾部
        if (current == null) {
            return;
        }

        newNode.next = current.next;
        current.next = newNode;
    }
}
示例

以下是在链表中间插入节点的示例代码:

LinkedList linkedList = new LinkedList();
linkedList.insertAtPosition(0, 1);
linkedList.insertAtPosition(1, 2);
linkedList.insertAtPosition(2, 3);
linkedList.insertAtPosition(3, 4);
linkedList.insertAtPosition(2, 5); // 在第2个位置插入一个新节点
总结

本文介绍了如何在Java中实现在链表中间插入节点的操作。需要注意的是,插入操作会改变链表的结构,因此需要小心操作。