单向链表(Singly Linked List)是一种数据结构,它由一个节点的序列组成,每个节点包含数据和指向下一个节点的指针。
单向链表的特点是每个节点只有一个指针字段,该字段指向下一个节点。最后一个节点的指针字段指向 null,表示链表的末尾。
以下是一个用 Java 代码实现的简单单向链表的示例:
public class ListNode {
public int val; // 节点的值
public ListNode next; // 指向下一个节点的指针
// 构造函数
public ListNode(int val) {
this.val = val;
this.next = null;
}
}
public class SinglyLinkedList {
private ListNode head; // 链表头节点
// 构造函数
public SinglyLinkedList() {
this.head = null;
}
// 在链表的末尾添加一个节点
public void add(int val) {
ListNode newNode = new ListNode(val);
if (this.head == null) {
this.head = newNode;
} else {
ListNode current = this.head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
}
// 遍历链表并打印节点的值
public void printList() {
ListNode current = this.head;
while (current != null) {
System.out.print(current.val + " ");
current = current.next;
}
System.out.println();
}
public static void main(String[] args) {
SinglyLinkedList list = new SinglyLinkedList();
list.add(1);
list.add(2);
list.add(3);
list.printList(); // 打印结果:1 2 3
}
}
在上述示例代码中,`ListNode` 类代表了链表中的一个节点,具有一个整数值 `val` 和指向下一个节点的指针 `next`。
`SinglyLinkedList` 类是单向链表的实现,其中的 `head` 是链表的头节点。通过 `add` 方法可以向链表末尾添加新的节点,`printList` 方法用于遍历链表并打印节点的值。
在 `main` 方法中,我们创建一个单向链表实例 `list`,然后连续添加了三个节点的值(1,2,3)。最后调用 `printList` 方法打印链表的值。打印结果是 `1 2 3`,表示链表的节点值从头节点到末尾节点依次是 1,2,3。