解题思路:
二叉搜索树则利用其特性:自带顺序
方法一:递归
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
if (root == null || root.val == val) return root;
TreeNode node = null;
if (root.val < val) node = searchBST(root.right, val);
else if (root.val > val) node = searchBST(root.left, val);
return node;
}
}
方法二:迭代
因为二叉搜索树保障了顺序,本题用迭代法更简单
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
while (root != null) {
if (root.val < val) root = root.right;
else if (root.val > val) root = root.left;
else return root;
}
return root;
}
}