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