从单链表打印节点

新手上路,请多包涵

我制作了一个节点类,它是一个链表类。有什么办法可以打印出这个列表中的元素吗?我创建了 print() 方法,但它只返回第一个元素 21。如何遍历该列表?

 public class ListNode {
    private int item;
    private ListNode next;

    public ListNode(int item, ListNode next){
        this.item = item;
        this.next = next;
    }

    public ListNode(int item){
        this(item, null);
    }

    public int print(){
        return item;
    }

    public static void main(String[] args) {
        ListNode list = new ListNode(21, new ListNode(5, new ListNode(19, null)));
        System.out.println(list.print());
    }

}

原文由 user2326847 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 387
2 个回答
public String toString() {
    String result = item + " ";
    if (next != null) {
        result += next.toString();
    }
    return result;
}

然后你可以简单地做

System.out.println(list.toString());

(我将您的函数从 print 重命名为 toString 以更准确地描述它的作用)

原文由 ValarDohaeris 发布,翻译遵循 CC BY-SA 3.0 许可协议

您当前的实现不打印任何内容:它只是返回项目。更合适的实现看起来像:

 public void print() {
    System.out.println(item);
}

然后您可以使用递归打印所有项目:

 public void printAll() {
    print();
    if (next != null) {
        System.out.println("; ");
        next.printAll();
    }
}

原文由 Vladimir 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题