Java-二叉树递归插入

Java-二叉树递归插入,java,recursion,binary-tree,Java,Recursion,Binary Tree,编辑:我在这里不使用任何键,因为它们不适用于我的代码-因此我的代码与建议的代码不同 我上周在大学里开始研究二叉树,在向树中插入任何内容时,我们通常使用队列作为帮助。但我想知道,如果没有排队的帮助,是否有可能做到这一点。到目前为止,我编写了以下代码: public void withoutQueue(Node newNode) { if (root == null) { root = newNode; current = root; } else

编辑:我在这里不使用任何键,因为它们不适用于我的代码-因此我的代码与建议的代码不同

我上周在大学里开始研究二叉树,在向树中插入任何内容时,我们通常使用队列作为帮助。但我想知道,如果没有排队的帮助,是否有可能做到这一点。到目前为止,我编写了以下代码:

public void withoutQueue(Node newNode) {

    if (root == null) {
        root = newNode;
        current = root;

    } else if (root != null) {

        if (current.left == null) {
            current.left = newNode;
            newNode.parent = current;
            counterleft++;

        } else if (current.left != null && current.right == null) {
            current.right = newNode;
            newNode.parent = current;
            counterright++;

        } else if (current.left != null && current.right != null && current.left.left == null && counterleft <= counterright) {
            Node helper = current;
            current = current.left;
            current.parent = helper;
            counterleft++;
            breadthFirstAppend(newNode);

        } else if (current.left != null && current.right != null && counterright <= counterleft) {
            Node helper = current;
            current = current.parent.right;
            current.parent = helper;
            counterright++;
            breadthFirstAppend(newNode);

        }

    }
}
public void withoutQueue(Node newNode){
if(root==null){
根=新节点;
电流=根;
}else if(root!=null){
if(current.left==null){
current.left=newNode;
newNode.parent=当前;
反左++;
}else if(current.left!=null&¤t.right==null){
current.right=newNode;
newNode.parent=当前;
counterright++;

}如果(current.left!=null&¤t.right!=null&¤t.left.left==null&&counterleft,那么您要问的是如何创建递归插入方法?因为目前,您正在硬编码所有可能的场景(显然这是不可能的)是的,基本上。因为我知道硬编码在这里不是一个很好的解决方案,因为它在很多值之后都不起作用……而且它也不是像递归调用那样可以监督+管理的……如果是这样的话,那么这个网站上有很多答案供你参考,我可以继续下去……相信我-是的。你真的认为我会在不搜索的情况下提问吗?但它们对我来说根本不起作用。大多数情况下使用了比较方法/迭代器键-但我的代码对此不起作用。不幸的是,当我想使用迭代器时,它总是要求添加队列。当我比较它时,顺序不再正确。这是为什么用递归标记?