You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据用户输入的名称删除自定义LinkedList中的指定节点

自定义链表按值删除节点实现方案

疑问解答

  • 你已经实现了searchNode方法可根据节点存储的字符串值查找对应节点,仅需修正原有方法中字符串比较的逻辑即可正常使用
  • 可以先查询节点索引再执行删除,但该方案需要两次遍历链表,效率更低,更推荐直接遍历找到待删除节点的前驱节点,一次遍历完成删除操作

代码修改说明

1. 修正原有节点搜索方法的字符串比较逻辑

你原有LinkedList类的searchNode方法使用==比较字符串,仅能比较字符串对象地址,无法匹配内容相同的不同字符串对象,修改为:

public ListNode searchNode(String data) {
    ListNode temp = this.head;
    while(temp != null) {
        // 改为equals匹配字符串内容
        if(data.equals(temp.getData()))
            return temp;
        else temp = temp.link;
    }
    return null;
}

2. 新增按值删除节点方法

在LinkedList类中添加如下方法:

public void deleteNodeByValue(String data) {
    // 空链表直接返回
    if (head == null) {
        System.out.println("Error >> 链表为空,无节点可删除");
        return;
    }
    // 待删除节点为头节点的情况
    if (data.equals(head.getData())) {
        head = head.link;
        return;
    }
    // 遍历查找待删除节点的前驱节点
    ListNode pre = head;
    ListNode current = head.link;
    while (current != null) {
        if (data.equals(current.getData())) {
            // 前驱节点直接指向待删除节点的后继,完成删除
            pre.link = current.link;
            return;
        }
        pre = current;
        current = current.link;
    }
    // 未找到匹配节点
    System.out.println("Error >> 未找到匹配的节点数据");
}

3. 修改main方法新增用户输入读取逻辑

首先在代码文件顶部导入输入工具类:

import java.util.Scanner;

修改C类的main方法末尾部分,添加输入读取和删除调用逻辑:

public static void main(String args[]) {
    // 原有代码保持不变
    System.out.println("Delete last node.");
    L.deleteLastNode();
    L.printList();
    
    System.out.println("请输入您想要删除的目标数据 >> ");
    Scanner sc = new Scanner(System.in);
    String target = sc.nextLine().trim();
    L.deleteNodeByValue(target);
    L.printList();
    sc.close();
}

运行效果验证

修改后运行程序,输出完全符合要求:

Add three nodes.
L = (mon, wed, sun)
Add fri behind wed.
L = (mon, wed, fri, sun)
Delete last node.
L = (mon, wed, fri)
请输入您想要删除的目标数据 >> 
wed
L = (mon, fri)

内容的提问来源于stack exchange,提问作者RainyDay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:42:00