我一直在尝试从Node切换到Java,我想知道的一件事是如何以类似于Node显示的格式打印对象,例如二叉树。例如,我的二叉树初始化代码如下:
public class BinaryTree {
int data;
BinaryTree left, right;
public static void main(String[] args) {
BinaryTree tree = new BinaryTree(1);
tree= new BinaryTree(1);
tree.left = new BinaryTree(2);
tree.right= new BinaryTree(3);
tree.left.right = new BinaryTree(4);
System.out.println(tree); // output -> BinaryTree@4554617c
}
public BinaryTree(int data) {
super();
int val;
this.left = this.right = null;
}
}
在节点中,此二叉树将显示如下:
TreeNode {
val: 1,
right: TreeNode { val: 3, right: null, left: null },
left:
TreeNode {
val: 2,
right: TreeNode { val: 4, right: null, left: null },
left: null } }
然而在Java,当我做system.out.println(树);
输出->BinaryTree@4554617c
什么是打印我的BinaryTree的正确方法?什么是好方法?有没有一种方法可以用JSON格式打印树?
打印tree
将给出主树节点的内存地址。如果要打印树的内容,则需要实现递归打印方法,并在树中的每个节点上递归。
如果节点是最终节点(没有右树或左树),则打印该节点的内容。否则向下移动。您可以在下树的路上打印,也可以在返回的路上打印,这取决于您希望树的外观。
希望我正确理解了这个问题。
问题内容: 如何在Java中打印二进制树,使输出类似于: 我的节点: 问题答案: 我已经创建了简单的二叉树打印机。你可以根据需要使用和修改它,但是仍然没有对其进行优化。我认为很多事情可以在这里得到改善;) 输出1: 输出2:
本文向大家介绍如何打印二叉树每层的节点?相关面试题,主要包含被问及如何打印二叉树每层的节点?时的应答技巧和注意事项,需要的朋友参考一下 考察点:二叉树 实现代码:
下面是一个二叉查找树,它有一个根节点、一个左节点和一个右节点。代码有效,但我想显示这个二叉查找树,这样我就可以看到图层中的每个节点…这是代码…
NowCoder 题目描述 和上题几乎一样。 解题思路 // java ArrayList<arraylist> Print(TreeNode pRoot) { ArrayList<arraylist> ret = new ArrayList<>(); Queue queue = new LinkedList<>(); queue.add(pRoot); while
NowCoder 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7 解题思路 使用队列来进行层次遍历。 不需要使用两个队列分别存储当前层的节点和下一层的节点,因为在开始遍历一层的节点时,当前队列中的节点数就是当前层的节点数,只要控制遍历这么多节点数,就能保证这次遍历的都是当前层的节点。 // java public Ar
问题内容: 我想以以下方式打印我的二叉树: 我已经编写了用于插入节点的代码,但是无法编写用于打印树的代码。所以请帮忙。我的代码是: 问题答案: 您正在寻找的是广度优先遍历,它使您可以逐级遍历树。基本上,您使用队列来跟踪需要访问的节点,并在运行时将孩子添加到队列的 后面 (而不是将它们添加到堆栈的 前面 )。首先开始工作。 完成此操作后,您可以找出树具有()的级别,并使用该级别来估计空白。如果要使空