当前位置:首页 > Java

java如何删除链表

2026-03-23 17:37:19Java

删除链表的方法

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

删除链表的头节点

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

java如何删除链表

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

删除链表的尾节点

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

java如何删除链表

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的垃圾回收机制会自动处理剩余节点:

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

注意事项

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

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

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

相关文章

如何配置java

如何配置java

安装Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK安装包。选择与系统架构匹配的版本(如Windows x64、macOS ARM等)。运行安装程…

php 实现单链表

php 实现单链表

单链表的基本概念 单链表是一种线性数据结构,由节点组成,每个节点包含数据域和指向下一个节点的指针域。链表的头节点是访问整个链表的入口。 单链表的节点类实现 在PHP中,可以通过类来定义链表节点。每个…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

php 实现链表

php 实现链表

PHP 实现链表的方法 链表是一种线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。PHP 中可以通过类和对象来实现链表。 定义链表节点类 创建一个 ListNode 类,用于表示链…