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

调用LinkedList的addfirst方法元素未按预期添加,问题在哪?

问题分析与解决

核心误区:对addfirst方法的功能理解偏差

你的addfirst方法逻辑完全正确,问题出在你对这个方法的预期搞反了:

  • addfirst的作用是将新元素插入到链表的头部,成为新的头节点
  • 执行顺序对应的链表变化:
    1. 调用list.addfirst(6):链表仅包含节点6
    2. 调用list.addfirst(9):新节点9被放到链表最前端成为头节点,链表结构变为9 -> 6
  • 实际输出9 -> 6 -> 是符合方法设计的正确结果,代码逻辑没有问题,是你对addfirst的功能预期出现了偏差。

输出末尾多余箭头的优化

输出末尾的-> 是printt方法的小问题——每次循环都会打印currNode.data+" -> ",最后一个节点也会额外输出箭头。可以修改打印方法解决:

public void printt() {
    Node currNode = head;
    while (currNode != null) {
        System.out.print(currNode.data);
        // 仅当当前节点不是最后一个时,才打印箭头
        if (currNode.next != null) {
            System.out.print(" -> ");
        }
        currNode = currNode.next;
    }
}

修改后输出会变成9 -> 6,更符合直观的链表展示形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:10:28