递归实现
public boolean searchBST(TreeNode root,int value){
// 递归终止条件
if(root==null){
return false;
}
// 如果当前值和查找值相同返回true
if(value==root.val) return true;
boolean state = false;
// 如果查找值小于根节点值从左边查找
if(value<root.val){
state = searchBST(root.left,value);
}
// 如果查找值大于等于根节点值从右边查找
if(value>=root.val){
state = searchBST(root.right,value);
}
return state;
}
循环实现
public boolean searchBSTForLoop(TreeNode root,int value){
while (root!=null){
if(value==root.val)return true;
if(value<root.val)root=root.left;
if(value>=root.val)root=root.right;
}
return false;
}
|