当前位置:首页 > Java

java如何描述单链表

2026-03-18 21:59:40Java

单链表的基本概念

单链表是一种线性数据结构,由一系列节点组成,每个节点包含两部分:数据域(存储数据)和指针域(存储指向下一个节点的引用)。链表的最后一个节点指向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);         // 第三个节点

遍历链表

通过循环访问每个节点,直到nextnull

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的节点:

java如何描述单链表

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指向下一个节点,末尾节点的nextnull
  • 动态性:链表长度可动态调整,插入和删除操作效率较高(时间复杂度为O(1)或O(n))。

通过上述代码和说明,可以清晰地理解Java中单链表的实现方式和基本操作逻辑。

标签: 链表java
分享给朋友:

相关文章

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…