LeetCode 700. 二叉搜索树中的搜索

目录结构

1.题目

2.题解


1.题目

给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。

示例:

给定二叉搜索树:

        4
       / \
      2   7
     / \
    1   3

和值: 2

你应该返回如下子树:

      2     
     / \   
    1   3

在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-in-a-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.题解

根据BST性质,采用迭代方式。

若根节点不空且根节点不是目的节点:

  • 若 val < root.val,进入根节点的左子树查找;
  • 若 val > root.val,进入根节点的右子树查找;

返回 root。

public class Solution700 {
    public TreeNode searchBST(TreeNode root, int val) {
        while (root != null && root.val != val) {
            if (root.val < val) {
                root = root.right;
            } else {
                root = root.left;
            }
        }
        return root;
    }
}
  • 时间复杂度:O(H)
  • 空间复杂度:O(1)

 

你可能感兴趣的:(LeetCode,leetcode)