经典题目:
在二叉搜索树中找指定元素,如找到则返回该节点,如找不到则返回null
思路:凡是二叉搜索树,要考虑左右孩子节点与父母节点的数值大小关系。
若小于,则在左子树搜索(递归);若大于则在右子树搜索(递归);若等于,则立刻返回该节点。终止条件:当某一个需要考察的节点为null时,代表所所无法进行,则需要返回null
代码如下:
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
if (root==null) return null;
if(val==root.val) return root;
else if(val<root.val) return searchBST(root.left, val);
else return searchBST(root.right, val);
}
}
时间复杂度: O(logH)=O(logN)