java实现简单单链表

Java实现简单单链表的完整攻略

什么是单链表

单链表是一种常见的数据结构,基于节点和指针实现,通过指针将多个节点连接在一起,每个节点包含当前节点的数据和下一个节点的指针,最后一个节点的指针为 null。

实现单链表的关键代码

单链表的核心是节点和节点之间的指针,所以我们需要先定义一个节点类(Node),包含节点元素(val)和指向下一个节点的指针(next):

class Node {
    int val;
    Node next;

    public Node(int val) {
        this.val = val;
    }
}

然后我们需要定义单链表类(LinkedList),包含一个头节点(head):

class LinkedList {
    Node head;

    // ...
}

接下来我们可以在单链表类中实现多种操作,这里介绍三种常用的操作:添加节点、删除节点、打印链表。

添加节点

向单链表中添加节点,需要经过以下步骤:

  1. 创建新节点
  2. 如果链表为空,头节点指向新节点
  3. 如果链表不为空,遍历到链表尾部,在尾部添加新节点

代码如下:

public void addNode(int val) {
    Node node = new Node(val);

    if (head == null) {
        head = node;
    } else {
        Node cur = head;
        while (cur.next != null) {
            cur = cur.next;
        }
        cur.next = node;
    }
}

删除节点

从单链表中删除节点,需要经过以下步骤:

  1. 遍历链表,找到需要删除的节点
  2. 修改节点前一个节点的指针,指向需要删除节点的下一个节点

代码如下:

public void removeNode(int val) {
    if (head == null) {
        return;
    }

    if (head.val == val) {
        head = head.next;
        return;
    }

    Node cur = head;
    while (cur.next != null) {
        if (cur.next.val == val) {
            cur.next = cur.next.next;
            return;
        }
        cur = cur.next;
    }
}

打印链表

我们可以遍历整个单链表,输出每个节点的值。

代码如下:

public void printList() {
    Node cur = head;
    while (cur != null) {
        System.out.print(cur.val + " ");
        cur = cur.next;
    }
    System.out.println();
}

示例说明

示例 1

LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.printList(); // 输出 1 2 3

list.removeNode(2);
list.printList(); // 输出 1 3

我们先创建一个单链表,包含三个节点 1、2、3,然后输出链表。接着,我们删除节点 2,再次输出链表,可以看到节点 2 已经被删除。

示例 2

LinkedList list = new LinkedList();
list.addNode(1);
list.printList(); // 输出 1

list.addNode(2);
list.addNode(3);
list.printList(); // 输出 1 2 3

我们创建一个单链表,包含三个节点 1、2、3,然后输出链表。在此之前,我们先添加一个节点 1,输出链表,可以看到节点 1 已经被添加。接着,我们再添加两个节点 2 和 3,再次输出链表,确认节点已经被成功添加。

总结

通过以上代码示例,你已经学习到了如何使用 Java 实现简单的单链表,包括添加节点、删除节点和打印链表。接下来,可以尝试利用单链表来解决更多的算法问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现简单单链表 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • SpringBoot actuator 健康检查不通过的解决方案

    本次将详细讲解SpringBoot Actuator健康检查无法通过的解决方案。 什么是SpringBoot Actuator 健康检查? SpringBoot中的Actuator是一个管理和监控SpringBoot应用程序的工具集合。Actuator主要是提供了一组RESTful API,让我们可以对应用程序进行配置、管理与监控。 SpringBoot提供…

    Java 2023年5月19日
    00
  • Java利用哈夫曼编码实现字符串压缩

    Java利用哈夫曼编码实现字符串压缩 介绍 哈夫曼编码是一种可变长度编码,它在通信和数据压缩领域得到广泛的应用。在哈夫曼编码中,出现频率高的字符或词语将被分配短的编码,出现频率低的则分配长的编码,这样可以有效地减少数据的传输量和存储空间。 本攻略将介绍如何使用Java实现字符串的压缩和解压缩,其中包括使用哈夫曼编码来实现压缩。 步骤 以下是压缩和解压缩的完整…

    Java 2023年5月20日
    00
  • java中简单的截取分割字符串实例

    那我来详细讲解一下“Java中简单的截取分割字符串实例”的攻略。 什么是字符串? 首先,我们需要明确一下,什么是字符串。在计算机领域中,字符串指的是由零个或多个字符组成的有限序列。 在Java中,字符串是一种特殊类型的对象,由java.lang.String类来实现。Java中的字符串是不可变的,也就是说,我们不能直接修改字符串的内容。但可以使用一些方法来对…

    Java 2023年5月27日
    00
  • Java中的ThreadLocal功能演示示例

    下面是“Java中的ThreadLocal功能演示示例”的完整攻略。 简介 在 Java 中,ThreadLocal 是一个特殊的工具,它可以为每个线程提供一个独立的副本以保存该变量。这个副本只有对应线程可以访问和修改,其他线程不可访问。这个功能的实现依赖于 ThreadLocalMap 类和 Thread 类的成员变量 ThreadLocal.Thread…

    Java 2023年5月26日
    00
  • JavaWeb Spring开发入门深入学习

    JavaWeb Spring开发入门深入学习攻略 JavaWeb Spring是一个集成了多种类库和框架的大型开发平台,能够帮助开发者快速搭建高效、稳定、可扩展的Web应用程序。以下是JavaWeb Spring开发入门深入学习的攻略: 一、环境搭建 在学习JavaWeb Spring开发前,需要首先搭建好相应的环境,包括Java开发工具、Web服务器、My…

    Java 2023年5月19日
    00
  • SpringBoot自定义加载yml实现方式,附源码解读

    首先我们需要了解在SpringBoot中如何读取配置文件。SpringBoot 支持的主配置文件类型有两种: .properties 和 .yml 文件格式。在默认情况下,SpringBoot 会优先读取 .properties 文件,如果同时存在两种格式,.yml 文件会覆盖.properties 文件。 然而,有些时候我们需要动态加载一些配置文件,而这些…

    Java 2023年6月15日
    00
  • Java IO异常如何处理详析

    Java IO异常如何处理详析 在Java中进行IO操作时,由于文件读取、写入等操作都会受到外界干扰,因此会存在各种可能的异常情况。因此,在进行IO操作时需要注意异常处理,本文将对Java IO异常如何处理进行详细说明。 异常捕获的方式 Java中捕获异常可以使用try-catch语句,从而使程序在出现异常时有所响应,从而保证程序不会崩溃。 try { //…

    Java 2023年5月26日
    00
  • tomcat 5.0 + apache 2.0 完全安装步骤详解

    安装 Tomcat 5.0 + Apache 2.0 的完整攻略 介绍 在安装 Tomcat 5.0 和 Apache 2.0 前,请确保您的服务器已安装了 Java JDK。这篇攻略将介绍如何将 Tomcat 5.0 和 Apache 2.0 安装在 Windows 环境下,同时也指导配置这两个服务器。 步骤 步骤1:下载 Tomcat 5.0 和 Apa…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部