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

Java实现链表反转时控制台输出尾部出现%符号的原因及解决方法

解决Java链表反转输出末尾的%符号问题

这个%符号不是你的程序输出的,而是终端(比如zsh)的命令提示符。原因很简单:你打印反转后的链表时,最后没有输出换行符,终端的提示符就直接跟在了程序输出的末尾。

看你的代码就能发现,打印初始链表后用了System.out.println();来换行,但打印反转链表的循环结束后,完全没做换行操作——这就是问题的核心。

解决方案

在打印反转链表的循环结束后,补上一行换行代码就行:

// print out the reversed list
while (head2 != null){
    System.out.print(head2.val);
    head2 = head2.next;
    if(head2 != null){
        System.out.print("->");
    }
}
// 新增这行代码,输出换行
System.out.println();

修改后再运行程序,输出就会变成正常的样子:

(base) ➜ desktop javac ReverseLinkedList1.java
(base) ➜ desktop java ReverseLinkedList1
1->2->3->4->5
5->4->3->2->1

终端提示符会乖乖出现在新的一行,不会再和程序输出混在一起了。

补充说明

如果你用的是bash、zsh这类终端shell,当程序输出没有以换行结尾时,shell就会在输出末尾加一个%来标记这个特殊情况(和正常换行后的提示符做区分)。只要确保程序输出最后有换行,这个符号自然就消失了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:28:10