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的Struts框架中ONGL表达式的基础使用入门

    对于在Java的Struts框架中ONGl表达式的基础使用入门,我将提供以下攻略: 一、什么是Struts框架 Struts框架是一个基于模型-视图-控制器(MVC)的web应用程序框架。它由Apache软件基金会开发,并且拥有活跃的社区支持和用户。它允许开发人员分离业务逻辑和用户界面,从而使开发人员能够更专注于他们的核心业务。 二、什么是OGNL表达式 O…

    Java 2023年5月20日
    00
  • 基于PHP一些十分严重的缺陷详解

    基于PHP一些十分严重的缺陷详解 PHP是一种被广泛应用的服务器端编程语言,但它也存在一些缺陷。在使用PHP开发时,需要了解这些缺陷并采取相应措施来规避其潜在的风险。 1. 隐式类型转换 PHP在进行类型转换时,常常会发生隐式类型转换。这种类型转换可能导致意想不到的问题。例如: $a = "10"; $b = $a + 1; echo $…

    Java 2023年5月20日
    00
  • 详解Windows下调整Tomcat启动参数的实现方法

    详解Windows下调整Tomcat启动参数的实现方法步骤如下: 一、了解Tomcat启动参数 Tomcat启动参数是在启动Tomcat时传递给JVM的参数。例如,-Xmx512m是告诉JVM将内存限制为512MB。 二、在Windows下调整Tomcat启动参数 在Windows下调整Tomcat启动参数的方法有以下几个步骤: 1. 打开cmd命令行窗口 …

    Java 2023年5月19日
    00
  • 网站更换域名对网站带来的影响及补救措施完美小结

    一、影响 网站的SEO排名受到影响。更换域名将导致搜索引擎重新评估网站的可信度和相关性,从而影响网站的排名。 存在大量的错误链接。原有的外部链接和书签将失效,用户访问页面将会出现404错误。 用户访问量下降。由于网站更换域名后,用户需要重新了解并适应新域名,可能会降低用户的访问量。 二、补救措施 建立301重定向。使用301重定向将所有旧URL指向新的URL…

    Java 2023年6月15日
    00
  • java中字符串与日期的转换实例

    我们来详细讲解一下“java中字符串与日期的转换实例”的完整攻略。 1. 字符串转日期 在Java中,可以用SimpleDateFormat类的parse方法来将字符串转换成日期对象。具体步骤如下: (1)创建SimpleDateFormat实例: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-…

    Java 2023年6月1日
    00
  • java 中Map详解及实例代码

    下面是完整的“java 中Map详解及实例代码”攻略。 什么是Map? Map是一种用来存储键-值对数据的数据结构,常用于数据缓存、数据筛选等场景。 Map是一种抽象的数据类型,Java中通过接口Map来定义Map类型。Map接口的实现类有:HashMap、TreeMap、LinkedHashMap 等。 HashMap 什么是HashMap HashMap…

    Java 2023年5月23日
    00
  • 在Java编程中定义方法

    在Java编程中定义方法,可以方便地对代码进行模块化,同时也可以提高代码的可读性和可维护性。下面,我将详细讲解Java编程中定义方法的完整攻略。 什么是方法? 在Java中,方法(Method)是一个独立的代码块,用于封装一些指令。它可以接受参数,处理数据以及返回值。我们可以在代码中通过调用方法来执行其中的指令。方法可以用于多处调用,提高了代码的复用性。 方…

    Java 2023年5月26日
    00
  • Java如何使用Agent和ASM在字节码层面实现方法拦截

    下面我将详细讲解“Java如何使用Agent和ASM在字节码层面实现方法拦截”的完整攻略,希望能对你有所帮助。 首先,我们需要了解Agent和ASM的相关知识。 Agent是JavaSE5引入的一个新特性,是一种运行时的插件机制,它通过在被启动的Java虚拟机上安装一个代理程序,可以实现许多高级的功能,比如动态注入代码或修改以及捕获JVM内部的事件信息等。 …

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