java如何输入链表
输入链表的方法
在Java中,链表通常通过LinkedList类或自定义的链表节点类实现。以下是几种常见的输入链表的方法:
使用Scanner类输入链表
可以通过Scanner类从控制台读取用户输入,并构建链表。

import java.util.LinkedList;
import java.util.Scanner;
public class LinkedListInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
LinkedList<Integer> list = new LinkedList<>();
System.out.println("输入链表元素(以空格分隔,回车结束):");
String input = scanner.nextLine();
String[] elements = input.split(" ");
for (String element : elements) {
list.add(Integer.parseInt(element));
}
System.out.println("输入的链表: " + list);
scanner.close();
}
}
自定义链表节点类
如果需要自定义链表节点,可以定义一个Node类,并通过循环输入节点值。

import java.util.Scanner;
class Node {
int data;
Node next;
Node(int data) {
this.data = data;
this.next = null;
}
}
public class CustomLinkedListInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Node head = null;
Node tail = null;
System.out.println("输入链表元素(以空格分隔,回车结束):");
String input = scanner.nextLine();
String[] elements = input.split(" ");
for (String element : elements) {
Node newNode = new Node(Integer.parseInt(element));
if (head == null) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
System.out.println("输入的链表:");
Node current = head;
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
scanner.close();
}
}
通过数组初始化链表
如果链表数据已知,可以直接通过数组初始化链表。
class Node {
int data;
Node next;
Node(int data) {
this.data = data;
this.next = null;
}
}
public class ArrayToLinkedList {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
Node head = null;
Node tail = null;
for (int num : arr) {
Node newNode = new Node(num);
if (head == null) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
System.out.println("初始化的链表:");
Node current = head;
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
}
}
使用LinkedList类
如果不需要自定义节点,可以直接使用Java提供的LinkedList类。
import java.util.LinkedList;
import java.util.Arrays;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>(Arrays.asList(1, 2, 3, 4, 5));
System.out.println("链表: " + list);
}
}
注意事项
- 输入时需确保数据类型匹配,避免输入非数字字符导致异常。
- 自定义链表节点时,注意处理
next指针的指向,避免内存泄漏或空指针异常。 - 使用
Scanner后及时关闭资源,避免资源泄露。






