Javaはバイナリ検索ツリーで要素を見つけます

アイデア

二分探索木の検索操作はシンプルで効果的です。二分探索木の性質に基づいて、ルートノードから開始して、左のサブツリーまたは右のサブツリーに移動して検索を続行します。検索するデータに一貫性がある場合ノードデータを使用して、現在のノードが返されます。検索するデータがルートノードのデータよりも小さい場合は、現在のノードの左側のサブツリーを検索します。それ以外の場合は、現在のノードの右側のサブツリーを検索します。データが存在しません。nullポインタを返します

コード

再帰:

BinarySearchTreeNode find(BinarySearchTreeNode root,int data){
    
    
  if(root == null)
    return null;
  if(data > root.getData()){
    
    
    return find(root.getRight(),data);
  }else if(data < root.getData()){
    
    
    return find(root.getLeft(),data);
  }
  return root;
}

非递归:


```java
BinarySearchTreeNode find(BinaryTreeNode root,int data){
    
    
  if(root == null)
    return null;
  while(root != null){
    
    
    if(root.getData() == data){
    
    
      return root;
    }
    else if(root.getData() > data){
    
    
      root = root.getLeft();
    }
    else{
    
    
      root = root.getRight();
    }
  }
  return null;
}

おすすめ

転載: blog.csdn.net/weixin_37632716/article/details/115217768