Java二叉树递归插入

Java二叉树递归插入,java,data-structures,binary-tree,Java,Data Structures,Binary Tree,我是Java新手。请帮助我理解下面的代码,指针是如何从左向右移动的。这段代码工作得很好。我只是想知道工作原理。假设我们插入20,30,10,35,9。指针如何从根20左侧的10移动到根20右侧的35,节点30。它不应该总是挂在根据代码添加的最新节点的左侧和右侧吗 class Node { Node right, left; int data = 0; Node(int data) { this.data = data; } publ

我是Java新手。请帮助我理解下面的代码,指针是如何从左向右移动的。这段代码工作得很好。我只是想知道工作原理。假设我们插入20,30,10,35,9。指针如何从根20左侧的10移动到根20右侧的35,节点30。它不应该总是挂在根据代码添加的最新节点的左侧和右侧吗

    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);
            }
        }
    }
}
类节点{
右、左淋巴结;
int数据=0;
节点(int数据){
这个数据=数据;
}
公共空白插入(int值){

如果(值指针正确移动,检查
if(如果未指定值,则值left和right默认为null指针不在树上移动,仅在当前分支上下移动,基于插入的值…您可以在方法中添加print语句,或了解调试器以真正了解其工作方式添加调试器并检查,所有内容都添加到le中ft或根的右侧创建一个不平衡的树可能您应该显示您实际插入数据的主要方法这是否意味着它将始终保持根的左侧或右侧(即第一个节点)仅限当前分支的上下。是的,如果传入节点小于或等于根节点,它将位于左侧,否则它将位于根节点的右侧。好的,谢谢,如果我没有错的话,再问一个问题(值根节点将是您开始执行程序的第一个节点)。