每日一题20201129*(700. 二叉搜索树中的搜索)

简介: 二叉搜索树中的搜索

700. 二叉搜索树中的搜索


0.jpg

image-20201130195559871

思路



首先搞清楚二叉搜索树的机制,左儿子的值都小于当前节点,右儿子的值都大于当前节点
然后就可以快速写出程序了,用递归很好实现
1. 相等直接return
2. 小于当前节点,直接去树节点的左子树寻找
3. 大于当前节点,去树节点的右子树寻找


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def searchBST(self, root: TreeNode, val: int) -> TreeNode:
        if root is None:
            return None
        if val == root.val:
            return root
        elif val > root.val:
            return self.searchBST(root.right, val)
        else:
            return self.searchBST(root.left, val)

1.jpg

image-20201130195817737


/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func searchBST(root *TreeNode, val int) *TreeNode {
    if root == nil {
        return nil
    }
    if val < root.Val {
        return searchBST(root.Left, val)
    }
    if val > root.Val {
        return searchBST(root.Right, val)
    }  
    return root
}

2.jpg

image-202011302003410

相关文章
|
XML Java 数据库
Flowable入门程序——构建一个命令行程序(一)
Flowable入门程序——构建一个命令行程序
369 0
|
安全 Java 应用服务中间件
避免Tomcat调试信息泄露的最佳实践
小米分享了团队解决网站敏感信息泄露问题的经历。在处理运行时错误时,Tomcat显示的调试信息可能泄露。尝试过使用Spring Boot的`ErrorAttributes`接口和修改Tomcat默认错误页面均未成功。最终,他们通过自定义错误页面并配置`application.yml`来隐藏敏感信息,成功解决了问题。这个方法推荐给其他开发者作为避免调试信息泄露的安全实践。
168 3
避免Tomcat调试信息泄露的最佳实践
|
canal 关系型数据库 MySQL
基于 Docker 结合 Canal 实现 MySQL 实时增量数据传输
基于 Docker 结合 Canal 实现 MySQL 实时增量数据传输
1121 0
基于 Docker 结合 Canal 实现 MySQL 实时增量数据传输
软件工程面试技巧之十八罗汉
软件工程面试技巧之十八罗汉
105 0
|
Java
IntelliJ IDEA - Lombok 报错 Java: 找不到符号
IntelliJ IDEA - Lombok 报错 Java: 找不到符号
1132 0
IntelliJ IDEA - Lombok 报错 Java: 找不到符号
|
编解码 算法
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(6)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(6)
205 0
|
存储 Linux 网络安全
CentOS7 安装docker记录及Docker常用命令
CentOS7 安装docker记录及Docker常用命令
377 0