使用递归插入二叉树

时间:2018-09-15 11:46:34

标签: java data-structures binary-tree

我正在尝试实现二叉树,而不是二叉树。我花了大量时间使用递归来编写插入操作,但没有得到。

它应该是一棵完整的树,从左到右填充。

有人可以帮助我吗?最好使用Java。

以下是执行此操作的迭代方法。(:(这甚至不起作用))

  public static void insertNode(Node root,int x){

        if(root==null) {

            root = new Node(x);
            return;
        }

        Node current;
        Queue<Node> qq = new LinkedList<Node>();

        ((LinkedList<Node>) qq).push(root);

        while(true){
            current=qq.peek();
            if(current.leftchild==null){
                Node child = new Node(x);
                child.parent = current;
                current.leftchild=child;

                return;
            }
            else { ((LinkedList<Node>) qq).push(current.leftchild);}
            if(current.rightChild==null){

                Node child = new Node(x);
                child.parent=current;
                current.rightChild=child;
                return;
            }
            else{
                ((LinkedList<Node>) qq).push(current.rightChild);
            }

            ((LinkedList<Node>) qq).pop();


        }

1 个答案:

答案 0 :(得分:0)

您的代码存在问题,就是您实际上想添加到链表时将其推入链表。 objLinkedList.push(element)添加到列表的开头,而elementLinkedList.add(element)添加到列表的末尾。以下是正确的代码段:

element