树值初始化为0

时间:2018-09-26 14:01:19

标签: java data-structures tree binary-search-tree

我构建了一个树,其中我只是遍历插入的值,但是由于变量初始化,输出包含额外的0。如果删除了变量初始化,则程序将被终止。

以下内容的输出是51 15 5 0

public 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 个答案:

答案 0 :(得分:0)

0来自root的初始值。

insertInTree取旧根并返回新根,因此您需要类似

    TreeDS root = null;
    root = insertInTree(root, 5);
    root = insertInTree(root, 15);
    root = insertInTree(root, 51);
    inorder(root);