微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

递归插入二叉搜索树JAVA

如何解决递归插入二叉搜索树JAVA

我有这段代码,但我发现以递归方式编写它很困难(二叉搜索树中的插入方法

    public void insert(E element){
        BTNode<E> node=root;
        boolean stop=false;
        while(!stop){
            if(element.compareto(node.getElement())<0){
                if(node.getLeft()==null){
                    node.setLeft(new BTNode<E>(element));
                    stop=true;
                } else{
                    node=node.getLeft();
                }
            }
            else{
                if(node.getRight()==null){
                    node.setRight(new BTNode<E>(element));
                    stop=true;
                } else{
                    node=node.getRight();
                }
            }
                
        }
        
    }

解决方法

您可以编写一个方法来接受根和要插入的元素并返回修改后的根。

public BTNode<E> insert(BTNode<E> root,E element) {
   if ( root == null ) {
      root = new BTNode<E>(element);
   } else if ( element.compareTo(root.getElement()) < 0 ) {
      root.left = insert(root.left,element);
   } else {
      root.right = insert(root.right,element);
   }
   return root;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。