Java

java listnode怎样使用

小樊
82
2024-11-20 16:28:00
栏目: 编程语言

ListNode 是链表数据结构中的一个节点类,通常用于表示链表中的一个元素。在 Java 中,你可以创建一个名为 ListNode 的类,如下所示:

public class ListNode {
    int val; // 节点的值
    ListNode next; // 指向下一个节点的指针

    // 构造方法
    public ListNode(int val) {
        this.val = val;
        this.next = null;
    }
}

要使用 ListNode 类,你可以创建一个链表并对其进行操作,例如添加元素、删除元素、查找元素等。以下是一些示例:

public class Main {
    public static void main(String[] args) {
        // 创建链表 1 -> 2 -> 3 -> 4 -> 5
        ListNode head = new ListNode(1);
        head.next = new ListNode(2);
        head.next.next = new ListNode(3);
        head.next.next.next = new ListNode(4);
        head.next.next.next.next = new ListNode(5);

        // 打印链表
        System.out.println("链表:");
        printList(head);

        // 添加元素 0 到链表头部
        head = addElement(head, 0);
        System.out.println("添加元素 0 后的链表:");
        printList(head);

        // 删除元素 3
        head = deleteElement(head, 3);
        System.out.println("删除元素 3 后的链表:");
        printList(head);

        // 查找值为 4 的节点
        ListNode node = findElement(head, 4);
        if (node != null) {
            System.out.println("找到值为 4 的节点,值为:" + node.val);
        } else {
            System.out.println("未找到值为 4 的节点");
        }
    }

    // 在链表头部添加元素
    public static ListNode addElement(ListNode head, int val) {
        ListNode newNode = new ListNode(val);
        newNode.next = head;
        return newNode;
    }

    // 删除链表中指定值的节点
    public static ListNode deleteElement(ListNode head, int val) {
        if (head == null) {
            return null;
        }

        if (head.val == val) {
            return head.next;
        }

        ListNode current = head;
        while (current.next != null && current.next.val != val) {
            current = current.next;
        }

        if (current.next != null) {
            current.next = current.next.next;
        }

        return head;
    }

    // 打印链表
    public static void printList(ListNode head) {
        ListNode current = head;
        while (current != null) {
            System.out.print(current.val + " -> ");
            current = current.next;
        }
        System.out.println("null");
    }

    // 查找链表中指定值的节点
    public static ListNode findElement(ListNode head, int val) {
        ListNode current = head;
        while (current != null) {
            if (current.val == val) {
                return current;
            }
            current = current.next;
        }
        return null;
    }
}

这个示例展示了如何创建一个链表,对其进行操作(如添加、删除和查找元素),并打印链表。你可以根据需要修改和扩展这个示例。

0
看了该问题的人还看了