二叉搜索树 --- Leedcode 700 二叉搜索树中的搜索 (Easy)

题目

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

例如,
给定二叉搜索树:

        4
       / \
      2   7
     / \
    1   3

和值: 2

你应该返回如下子树:

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

解答

二叉树的解题思路: 明确一个节点要做的事情,其他的交给递归来做。

框架:

void traverse(TreeNode root) { 
// root 需要做什么?在这做。 
// 其他的不⽤ root 操⼼,抛给框架 
traverse(root.left); 
traverse(root.right); 
}

对应解题:

var searchBST = function(root, val) {
    if(root === null || val === root.val) return root;
    if(val < root.val)  return searchBST(root.left, val);
    if(val > root.val) return searchBST(root.right, val);
};

你可能感兴趣的:(#,树)