我构建了一个树,其中我只是遍历插入的值,但由于变量初始化,输出包含一个额外的 0。如果删除了变量初始化,则程序将终止。以下输出为 51 15 5 0public class TreeImplementation { public static class TreeDS{ TreeDS left; TreeDS right; int data; } public static TreeDS root = new TreeDS(); public static TreeDS insertInTree(TreeDS node,int value) { if(node==null) { node=new TreeDS(); node.data=value; node.left=null; node.right=null; return node; } if(node.data>value) { node.left=insertInTree(node.left,value); } else if(node.data<value) { node.right=insertInTree(node.right,value); } return node; } public static void main(String[] args) { insertInTree(root, 5); insertInTree(root, 15); insertInTree(root, 51); inorder(root); } private static void inorder(TreeDS node) { if(node!=null) { inorder(node.left); System.out.print(" "+node.data); inorder(node.right); } }}这段代码有什么问题?
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
0 来自 的初始值root。
insertInTree 获取旧根并返回新根,因此您需要类似的东西
TreeDS root = null;
root = insertInTree(root, 5);
root = insertInTree(root, 15);
root = insertInTree(root, 51);
inorder(root);
添加回答
举报
0/150
提交
取消