树值初始化为 0

我构建了一个树,其中我只是遍历插入的值,但由于变量初始化,输出包含一个额外的 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);

                }

    }


}

这段代码有什么问题?


萧十郎
浏览 129回答 1
1回答

慕莱坞森

0 来自 的初始值root。insertInTree 获取旧根并返回新根,因此您需要类似的东西&nbsp; &nbsp; TreeDS root = null;&nbsp; &nbsp; root = insertInTree(root, 5);&nbsp; &nbsp; root = insertInTree(root, 15);&nbsp; &nbsp; root = insertInTree(root, 51);&nbsp; &nbsp; inorder(root);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java