实现将一个元素插入二叉树的算法java

思路

因为给定的是二叉树,所以能在任意地方插入元素,为了插入,可以使用层序遍历的方法,找到一个左孩子或者右孩子结点为空的结点,然后插入该元素

void insertInBinaryTree(BinaryTreeNode root,int data){
    
    
  LLQueue q = new LLQueue();
  BinaryTreeNode temp;
  BinaryTreeNode newNode = new BinaryTreeNode();
  newNode.setData(data);
  if(root == null){
    
    
    root = newNode;
    return;
  }
  q.enqueue(root);
  while(q.isNotEmpty()){
    
    
     temp = q.dequeue();
     if(temp.getLeft() != null){
    
    
       q.enqueue(temp.getLeft());
     }else{
    
    
       temp.setLeft(newNode);
       q.deleteQueue();
       return;
     }
     if(temp.getRight()!=null){
    
    
       q.enqueue(temp.getRight());
     }else{
    
    
       temp.setRight(newNode);
       q.deleteQueue();
       return;
     }
  }
  q.deleteQueue();
}

猜你喜欢

转载自blog.csdn.net/weixin_37632716/article/details/110142081