前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode - 二叉搜索树中的搜索

LeetCode - 二叉搜索树中的搜索

作者头像
晓痴
发布2019-07-24 14:09:34
6900
发布2019-07-24 14:09:34
举报
文章被收录于专栏:曌的晓痴曌的晓痴

两月前的一题,LeetCode的第700题,难度为简单。

原题地址:https://leetcode-cn.com/problems/search-in-a-binary-search-tree/

题目描述

给定二叉搜索树(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

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

这题的题意很好理解,就是根据二叉搜索树的特性,返回查找到的节点。具体解法如下:

  1. 排除当前节点为NULL的情况,即没找到的情况
  2. 如果当前节点的值等于要查找的值,说明当前节点就是要查找的节点,那么就返回当前节点
  3. 否则的话,根据二叉搜索树的特性,分别去左子树或右子树中搜索对应的节点。

中文官网题解:

https://leetcode-cn.com/problems/search-in-a-binary-search-tree/solution/

个人题解:

代码语言:javascript
复制
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        if (root == null) {
            return null;
        }
        if (root.val == val) {
            return root;
        } else if (root.val > val) {
            return searchBST(root.left, val);
        } else {
            return searchBST(root.right, val);
        }
    }
}

结果:

时间上是一个不错的结果,不过下面的内存使用这个,我其实并不是很能知道这个图中,我所在的是哪个位置。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 曌的晓痴 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档