leetcode700.二叉搜索树中的搜索
利用二叉搜索树的特点即可:
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
if(root==null) return null;
if(root.left == null && root.right == null && root.val != val) return null;
if(root.val < val) {
return searchBST(root.right, val);
}
else if(root.val > val) {
return searchBST(root.left, val);
}
else return root;
}
}
然后还可以优化成:
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
if(root == null || root.val == val) return root;
else if(root.val > val) return searchBST(root.left, val);
else if(root.val < val) return searchBST(root.right, val);
else return null;
}
}