java如何描述单链表
单链表的基本概念
单链表是一种线性数据结构,由一系列节点组成,每个节点包含两部分:数据域(存储数据)和指针域(存储指向下一个节点的引用)。链表的最后一个节点指向null,表示链表结束。
Java实现单链表的节点类
通过定义一个内部类Node表示链表的节点,包含数据域和指向下一个节点的指针:
class ListNode {
int val; // 数据域
ListNode next; // 指针域,指向下一个节点
// 构造函数
ListNode(int val) {
this.val = val;
this.next = null;
}
}
单链表的操作示例
以下是单链表的常见操作实现:

初始化链表
创建头节点并逐步添加新节点:
ListNode head = new ListNode(1); // 头节点
head.next = new ListNode(2); // 第二个节点
head.next.next = new ListNode(3); // 第三个节点
遍历链表
通过循环访问每个节点,直到next为null:

ListNode current = head;
while (current != null) {
System.out.print(current.val + " "); // 输出节点值
current = current.next; // 移动到下一个节点
}
// 输出:1 2 3
插入节点
在链表末尾插入新节点:
ListNode newNode = new ListNode(4);
ListNode tail = head;
while (tail.next != null) {
tail = tail.next; // 找到最后一个节点
}
tail.next = newNode; // 将新节点链接到末尾
删除节点
删除值为2的节点:
ListNode prev = head;
while (prev.next != null && prev.next.val != 2) {
prev = prev.next; // 找到待删除节点的前驱
}
if (prev.next != null) {
prev.next = prev.next.next; // 跳过待删除节点
}
完整示例代码
public class SinglyLinkedList {
static class ListNode {
int val;
ListNode next;
ListNode(int val) { this.val = val; }
}
public static void main(String[] args) {
// 创建链表 1 -> 2 -> 3
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
// 遍历链表
ListNode current = head;
while (current != null) {
System.out.print(current.val + " ");
current = current.next;
}
}
}
关键点说明
- 头节点:链表的第一个节点,是遍历的起点。
- 指针域:
next指向下一个节点,末尾节点的next为null。 - 动态性:链表长度可动态调整,插入和删除操作效率较高(时间复杂度为O(1)或O(n))。
通过上述代码和说明,可以清晰地理解Java中单链表的实现方式和基本操作逻辑。






