当前位置:首页 > Java

java如何删除链表

2026-03-23 17:37:19Java

删除链表的方法

在Java中删除链表通常涉及删除特定节点或清空整个链表。以下是几种常见情况的实现方法:

删除链表的头节点

若需要删除链表的第一个节点,只需将头指针指向下一个节点:

public void deleteHead(ListNode head) {
    if (head != null) {
        head = head.next;
    }
}

删除链表的尾节点

删除尾节点需要遍历链表至倒数第二个节点,并将其 next 设为 null

public void deleteTail(ListNode head) {
    if (head == null || head.next == null) {
        head = null;
        return;
    }
    ListNode current = head;
    while (current.next.next != null) {
        current = current.next;
    }
    current.next = null;
}

删除指定值的节点

遍历链表,找到目标节点后调整指针跳过该节点:

public void deleteNode(ListNode head, int val) {
    if (head == null) return;
    if (head.val == val) {
        head = head.next;
        return;
    }
    ListNode current = head;
    while (current.next != null && current.next.val != val) {
        current = current.next;
    }
    if (current.next != null) {
        current.next = current.next.next;
    }
}

清空整个链表

直接将头节点设为 null,Java的垃圾回收机制会自动处理剩余节点:

java如何删除链表

public void clearLinkedList(ListNode head) {
    head = null;
}

注意事项

  • 删除操作需检查边界条件(如空链表或单节点链表)。
  • 若链表为双向链表,需额外处理 prev 指针。
  • 删除中间节点时,时间复杂度为 O(n),而删除头节点为 O(1)。

以上方法适用于单链表,若为双向链表或其他结构,需相应调整指针逻辑。

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

相关文章

java如何输出

java如何输出

输出到控制台 使用 System.out.println() 方法输出内容到控制台,适用于调试或简单信息展示。 示例代码: System.out.println("Hello, World!")…

java如何下载

java如何下载

下载Java的步骤 访问Oracle官方网站或OpenJDK项目页面下载Java开发工具包(JDK)。Oracle JDK适用于商业用途,OpenJDK为开源版本。 打开浏览器,进入Oracle J…

java如何打开

java如何打开

安装Java开发环境 下载并安装Java Development Kit (JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH变量正…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

链表实现js

链表实现js

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