Java二叉树递归插入

时间:2019-07-16 05:29:33

标签: java data-structures binary-tree

我是Java新手。请帮助我理解以下代码,指针如何从左向右移动。该代码运行良好。我只想知道它的工作原理,让我们说如果我们插入20,30,10,35,9。指针如何从根20左边的10移动到根20节点30右边的35。始终挂在按照代码添加的最新节点的左侧和右侧。

    class Node {
    Node right, left;
    int data = 0;
    Node(int data) {
        this.data = data;
    }
    public void insert(int value) {
        if (value <= data) {
            if (left == null) {
                left = new Node(value);
            } else {
                left.insert(value);
            }
        } else {
            if (right == null) {
                right = new Node(value);
            } else {
                right.insert(value);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

当支票if (value <= data) {决定要走的路时,指针将正确移动,如果输入值小于或等于当前节点值,则它将向左移动,否则向右移动。移动之后,它将再次调用在左侧或右侧节点上插入。