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

题目

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

例:
输入:root = [4,2,7,1,3], val = 2
输出:[2,1,3]

方法:递归
  • 若节点为空,即表示该二叉树为空树或子树为空树,那么返回 None
  • 若节点值等于目标值 val,那么返回以该节点为根节点的子树
  • 根据二叉搜索树的性质可知,若节点值大于目标值 val,则只需遍历该节点的左子树;若节点值小于目标值 val,则只需遍历该节点的右子树
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def searchBST(self, root, val):
        if not root:
            return None
        if root.val == val:
            return root
        elif root.val > val:
            return self.searchBST(root.left, val)
        else:
            return self.searchBST(root.right, val)
相关知识
  • 二叉搜索树(BST,二叉排序树):
    若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容