如何在java中實(shí)現(xiàn)鏈表的插入操作

小樊
81
2024-09-28 17:52:39

在Java中,實(shí)現(xiàn)鏈表插入操作需要遵循以下步驟:

  1. 創(chuàng)建一個(gè)表示鏈表節(jié)點(diǎn)的類,包含一個(gè)存儲(chǔ)數(shù)據(jù)的變量(如data)和一個(gè)指向下一個(gè)節(jié)點(diǎn)的引用(如next)。
public class ListNode {
    int data;
    ListNode next;

    public ListNode(int data) {
        this.data = data;
        this.next = null;
    }
}
  1. 創(chuàng)建一個(gè)鏈表類,包含一個(gè)頭節(jié)點(diǎn)引用(如head)以及實(shí)現(xiàn)插入操作的方法(如insertAtHeadinsertAtTailinsertAfter)。
public class LinkedList {
    ListNode head;

    public LinkedList() {
        this.head = null;
    }

    // 在鏈表頭部插入節(jié)點(diǎn)
    public void insertAtHead(int data) {
        ListNode newNode = new ListNode(data);
        newNode.next = head;
        head = newNode;
    }

    // 在鏈表尾部插入節(jié)點(diǎn)
    public void insertAtTail(int data) {
        ListNode newNode = new ListNode(data);
        if (head == null) {
            head = newNode;
            return;
        }
        ListNode current = head;
        while (current.next != null) {
            current = current.next;
        }
        current.next = newNode;
    }

    // 在指定節(jié)點(diǎn)之后插入新節(jié)點(diǎn)
    public void insertAfter(ListNode node, int data) {
        if (node == null) {
            System.out.println("The given previous node must not be null");
            return;
        }
        ListNode newNode = new ListNode(data);
        newNode.next = node.next;
        node.next = newNode;
    }
}
  1. 使用鏈表類的方法進(jìn)行插入操作。
public class Main {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();

        // 在鏈表頭部插入節(jié)點(diǎn)
        list.insertAtHead(3);
        list.insertAtHead(2);
        list.insertAtHead(1);

        // 在鏈表尾部插入節(jié)點(diǎn)
        list.insertAtTail(4);
        list.insertAtTail(5);

        // 在指定節(jié)點(diǎn)之后插入新節(jié)點(diǎn)
        ListNode node = list.head.next; // 節(jié)點(diǎn)值為2
        list.insertAfter(node, 6);
    }
}

以上代碼將創(chuàng)建一個(gè)鏈表,并在頭部、尾部和指定節(jié)點(diǎn)之后插入新節(jié)點(diǎn)。運(yùn)行Main類,輸出鏈表中的元素,將顯示插入操作的結(jié)果。

0