首页 > 其他分享 >LeetCode 700. 二叉搜索树中的搜索

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

时间:2023-05-29 16:55:25浏览次数:61  
标签:return nil val root 700 搜索 TreeNode 树中 节点

题目链接:LeetCode 700. 二叉搜索树中的搜索

题意:

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。

你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

解题思路:

递归法

递归遍历二叉树,寻找与val相等的节点,找到即返回该节点

递归代码:

func searchBST(root *TreeNode, val int) *TreeNode {

    if root == nil {
        return nil
    } 
    if root.Val == val{
        return root
    }
    var res *TreeNode
    if root.Val > val {
        res = searchBST(root.Left,val)
    }else{
        res = searchBST(root.Right,val)
    }
    return res
}

迭代法

因为本题是二叉搜索树,它的中序遍历是有序的,因此可以根据当前节点的值与目标值val的大小关系,选择往左子树或者右子树走

迭代法代码:

func searchBST(root *TreeNode, val int) *TreeNode {

    if root == nil {
        return nil
    } 
    for root != nil {
        if root.Val == val{
            return root
        }
        if root.Val > val{
            root = root.Left
        }else{
            root = root.Right 
        }
    }
    return root
}

标签:return,nil,val,root,700,搜索,TreeNode,树中,节点
From: https://www.cnblogs.com/lxing-go/p/17440940.html

相关文章

  • 遥控器、电子秤等包含纽扣电池商品应该如何办理16CFR1700.15和16CFR1700.20/ANSI C18.
    本政策适用的纽扣电池和硬币电池本政策适用于独立式纽扣电池或硬币电池,它们是扁圆形的单体电池,直径通常为5到25毫米,高度为1到6毫米。纽扣电池和硬币电池可作为单独的电池出售,但也用于各种消费品和家居用品中,其中包括遥控器、钟表、电脑、照相机、计算器、手电筒、无焰蜡烛......
  • 代码随想录算法训练营第二十天|654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树
    【参考链接】654.最大二叉树【注意】1.构造二叉树,都需要用前序遍历。2.二叉树的根是数组中的最大元素。3.没必要构造新数组,通过下标控制左右区间。运行效率会高很多。【代码】1#Definitionforabinarytreenode.2#classTreeNode(object):3#def__init......
  • 对输入法或搜索类软件产品的评价
    微软拼音输入法1.从用户的角度考虑输入法是电脑自带的微软输入法,使用起来非常简洁,而且使用起来非常方便,无需另外下载输入法。2.记住用户的选择对于输入拼音的词语匹配很好,对于一些大家都常用的词汇都放在前面。不过有的时候自己最近输入的一些词汇并没有放在最前面,而是比较靠......
  • 第K短路(A*算法 启发式搜索算法)
    【启发式算法】定义函数h[x]=g[x]+f[x];其中g[x]是x结点的真实值,f[x]是x结点的估计剩余代价值,h[x]就是当前方案的总估计值。在BFS过程中,以最优价值优先遍历,可以减小时间复杂度,并简化问题。A*算法的优势就是,对当前结点做一个价值估计,取出堆中最优的结点进行下一次遍历。在求......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉搜索树迭代器
    1.简述:实现一个二叉搜索树迭代器类BSTIterator,表示一个按中序遍历二叉搜索树(BST)的迭代器:BSTIterator(TreeNoderoot)初始化BSTIterator类的一个对象。BST的根节点root会作为构造函数的一部分给出。指针应初始化为一个不存在于BST中的数字,且该数字小于BST中的任何元素。b......
  • Qt编写视频监控系统76-Onvif跨网段组播搜索和单播搜索的实现
    一、前言在视频监控行业一般会用国际onvif工具来测试设备是否支持onvif协议,工具的名字叫ONVIFDeviceManager(还有个工具叫ONVIFDeviceTestTool,专用于程序员测试各种数据交互),可以自行搜索下载,此工具位国际官方工具,如果此工具搜索不到摄像机,则说明该摄像机不是真正的onvif摄像......
  • 电商搜索的多路召回
    当选用elasticsearch作为电商的商品搜索存储系统时,用户输入一个query时,这个query是如何从es中查询出商品数据的?首先,用户输入的query词会通过query分析服务产出若干个从不同维度表达用户意图的tokens。比如输入“红富士苹果”,经query分析后会产出以下维度的tokens:......
  • 移除Launcher界面搜索栏
    移除Launcher界面搜索栏-publicstaticfinalbooleanQSB_ON_FIRST_SCREEN=true;+publicstaticfinalbooleanQSB_ON_FIRST_SCREEN=false;//removeQSBinLauncher3byoyon2023/05/27......
  • 广度优先搜索+状态压缩
    1.滑动谜题2.转化为全零矩阵的最少反转次数3.推箱子......
  • 搜索推广|出价产品介绍
    课程附件......