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日

相关文章

  • Java实现字符串匹配的示例代码

    下面是Java实现字符串匹配的示例代码的完整攻略: 1. 什么是字符串匹配 字符串匹配指在一个字符串中查找另一个字符串的过程。在计算机科学中,字符串匹配是十分常见的问题,例如用来搜索文本文件中的单词、在数据库中查询某些记录等等。这里我们介绍一种常见的字符串匹配算法——KMP算法。 2. KMP算法介绍 KMP算法全称是Knuth-Morris-Pratt算法…

    Java 2023年5月26日
    00
  • SpringBoot项目打成War布署在Tomcat的详细步骤

    下面为您介绍SpringBoot项目打成War包并部署在Tomcat的详细步骤。 一、将SpringBoot项目转化为War包 在pom.xml文件中修改packaging为war,添加servlet-api依赖。 <packaging>war</packaging> <!– 添加servlet-api依赖 –> &l…

    Java 2023年5月19日
    00
  • Tomcat服务器的安装配置图文教程(推荐)

    下面详细讲解“Tomcat服务器的安装配置图文教程(推荐)”的完整攻略。 1. 下载与安装Tomcat 首先,从Tomcat官网 https://tomcat.apache.org/ 下载最新的Tomcat安装文件,选择与你系统对应的版本(一般会选择zip或tar.gz压缩文件)。下载完成后,将Tomcat文件解压到你想要安装的目录中。 示例: # 假设我们…

    Java 2023年5月19日
    00
  • java使用分隔符连接数组中每个元素的实例

    下面我将为你详细讲解Java中使用分隔符连接数组中每个元素的实例,主要包括以下内容: String中的join方法 StringBuilder/StringBuffer 1. String中的join方法 String中的join方法可以方便地将一个数组或集合中的元素以指定的分隔符连接起来。它的语法为: public static String join(C…

    Java 2023年5月26日
    00
  • maven打包上传到私有仓库的实现步骤

    下面是maven打包上传到私有仓库的实现步骤: 准备工作 搭建Maven私有仓库:可以使用 Nexus 或者 Sonatype 等 Maven 私有仓库来存储项目的构建包。 在项目 pom.xml 文件中加入仓库配置: <repositories> <repository> <id>my-internal-repo<…

    Java 2023年5月19日
    00
  • Java如何实现http接口参数和返回值加密

    要实现HTTP接口参数和返回值加密,可以采用对称加密和非对称加密的方式。 对称加密 对称加密算法是加密和解密密钥相同的加密算法,常见的有DES、3DES、AES等。对称加密的加解密速度快,但密钥传输、保密性等存在问题。 在Java中使用AES对称加密方式来对参数和返回值进行加密。使用如下代码: import javax.crypto.Cipher; impo…

    Java 2023年5月20日
    00
  • 数据库CURD必备搭档mybatis plus详解

    数据库CURD必备搭档mybatis plus详解 什么是MyBatis Plus MyBatis Plus是一个基于MyBatis的增强工具,简化了MyBatis的操作,减少了开发人员的工作量,让开发人员能够更加专注于业务逻辑的实现。 MyBatis Plus的常用功能 快速Mapper接口的开发 自动分页 自动注入公共字段 代码生成器 快速开发Mappe…

    Java 2023年6月1日
    00
  • Mybatis拦截器实现自定义需求

    下面我将详细讲解Mybatis拦截器实现自定义需求的攻略: 什么是Mybatis拦截器? Mybatis拦截器是一个在Mybatis执行核心代码,解析SQL语句和执行SQL语句的过程中可以自定义添加一些拦截和处理的类。它可以实现在执行一条SQL语句前后增加一些处理逻辑,比如动态改变SQL语句、增加数据缓存和日志记录等功能。 如何实现Mybatis拦截器? 在…

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