Java 二叉树递归插入

Java Binary Tree recursive Insert

我是 Java 的新手。请帮助我理解下面的代码,指针是如何从左向右移动的。此代码运行良好。我只想知道 working.Lets 说如果我们插入 20,30,10,35,9 。指针如何从根 20 左侧的 10 移动到根 20 右侧的节点 30 的 35 。Shouldn'它总是挂在根据代码添加的最新节点的左侧和右侧。

    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);
            }
        }
    }
}

指针正确移动,因为检查 if (value <= data) { 决定要走哪条路,如果传入值小于或等于当前节点值,则它将向左移动,否则向右移动。移动后,它再次调用插入到左侧或右侧节点。