Проблема с методом вставки полного двоичного дерева - PullRequest
0 голосов
/ 10 марта 2020

У меня проблема с методом вставки в мое полное двоичное дерево

public void insert( Equipo equipo){
    this.setRootNode(insertThis(this.getRootNode(), node));
}


private BinaryTreeNode insertThis(BinaryTreeNode root, BinaryTreeNode nodo){
    if(root == null) {
        root = nodo;
    } else {
        if(root.getLeftNode() == null) {
            root.setLeftNode(insertThis(root.getLeftNode(),nodo));
        } else if(root.getRightNode() == null) {
            root.setRightNode(insertThis(root.getRightNode(),nodo));
        } else {
            if(root.getLeftNode().getLeftNode() == null 
                || root.getLeftNode().getRightNode() == null) {
                root.setLeftNode(insertThis(root.getLeftNode(),nodo));
            } else if(root.getRightNode().getLeftNode() == null 
                     || root.getRightNode().getRightNode() == null) {
                root.setRightNode(insertThis(root.getRightNode(),nodo));
            } else {
                insertThis(root.getLeftNode(),nodo);
            }
        }
    }
    return node;
}

Проблема в том, что после второго уровня двоичного дерева все узлы go находятся в левом поддереве root и no - это полное двоичное дерево, мне нужно разрешить его или, если у вас есть другая реализация полного двоичного дерева, это полезно для меня!. Спасибо

...