700. Search in a Binary Search Tree
二叉搜索树。基础递归,有点像简单版的递归二分法。分成两种情况,node为空,或不为空。
public TreeNode searchBST(TreeNode root, int val) {
if (root == null) return null;
if (root.val == val) {
return root;
} else if (root.val > val) {
return searchBST(root.left, val);
} else {
return searchBST(root.right, val);
}
}
循环写法会比较快。
public TreeNode searchBST(TreeNode root, int val) {
TreeNode cur = root;
while (cur != null) {
if (cur.val == val) { return cur;}
else if (cur.val < val) { cur = cur.right;}
else {cur = cur.left;}
}
return null;
}
注意不要这么写,因为计算if的时候会抛NullPointerException
if (cur.val == val) { return cur;}
if (cur.val < val) { cur = cur.right;}
if (cur.val > val) { cur = cur.left;}