class Node {
    int val;
    Node next;

    public Node(int val) {
        this.val = val;
        this.next = null;
    }
}

public class LinkedList {
    private Node head;

    public void insert(int val) {
        Node newNode = new Node(val);
        if (head == null) {
            head = newNode;
        } else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }

    public void delete(int x) {
        Node current = head;
        Node prev = null;
        while (current != null) {
            if (current.val == x) {
                if (prev == null) {
                    head = current.next;
                } else {
                    prev.next = current.next;
                }
            } else {
                prev = current;
            }
            current = current.next;
        }
    }

    public void display() {
        Node current = head;
        while (current != null) {
            System.out.print(current.val + " ");
            current = current.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.insert(1);
        list.insert(2);
        list.insert(2);
        list.insert(3);
        list.insert(1);

        System.out.println("Before deletion:");
        list.display();

        int x = 2;
        list.delete(x);

        System.out.println("After deletion of ' + x + ':");
        list.display();
    }
}
Java 单链表删除指定值节点算法实现

原文地址: https://www.cveoy.top/t/topic/pgUw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录