当前位置: 首页 > news >正文

饲料网站建设 中企动力东莞网络推广及优化

饲料网站建设 中企动力,东莞网络推广及优化,如何做网站路径分析,女生做网站主题有哪些LeetCode 700.二叉搜索树中的搜索 1、题目 题目链接:700. 二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则…

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

1、题目

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

示例 1:
image.png

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

示例 2:
image.png

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

提示:

  • 树中节点数在 [1, 5000] 范围内
  • 1 <= Node.val <= 107
  • root 是二叉搜索树
  • 1 <= val <= 107

2、递归

思路

二叉搜索树是一个有序树,满足以下性质:

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉搜索树

据此可以得到如下算法:
若 root 为空则返回空节点;
若 val = root.val,则返回 root;
若 val < root.val,递归左子树;
若 val > root.val,递归右子树。

  1. 确定递归函数的参数和返回值

递归函数的参数传入的就是根节点和要搜索的数值,返回的就是以这个搜索数值所在的节点。
代码如下:

TreeNode* searchBST(TreeNode* root, int val)
  1. 确定终止条件

如果root为空,或者找到这个数值了,就返回root节点。

if (root == nullptr || root->val == val) {return root;
}
  1. 确定单层递归的逻辑

看看二叉搜索树的单层递归逻辑有何不同。
因为二叉搜索树的节点是有序的,所以可以有方向的去搜索。
如果root->val > val,搜索左子树,如果root->val < val,就搜索右子树,最后如果都没有搜索到,就返回 nullptr。
代码如下:

TreeNode* result = nullptr;
if (root->val > val) result = searchBST(root->left, val);
if (root->val < val) result = searchBST(root->right, val);
return result;

代码

class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {if (root == nullptr || root->val == val) {return root;}// 如果根节点的值大于目标值,则在左子树中继续搜索if (root->val > val) {return searchBST(root->left, val);} else {// 如果根节点的值小于目标值,则在右子树中继续搜索return searchBST(root->right, val);}}
};

复杂度分析

  • 时间复杂度: O(n)
  • 空间复杂度: O(n)

3、迭代法

思路

我们将方法一的递归改成迭代写法:
若 root 为空则跳出循环,并返回空节点;
若 val=root.val,则返回 root;
若 val<root.val,将 root 置为 root.left;
若 val>root.val,将 root 置为 root.right。

代码

class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {while (root != nullptr) {if (root->val > val) {root = root->left;} else if (root->val < val) {root = root->right;} else {return root;}}return nullptr;}
};

复杂度分析

  • 时间复杂度: O(n)
  • 空间复杂度: O(1)
http://www.hkea.cn/news/237240/

相关文章:

  • 动态网站订单怎么做搜索引擎优化营销
  • html5行业网站最近有哪些新闻
  • 做网站业务的怎么寻找客户在哪里打广告效果最好
  • 广东深圳seo服务内容
  • 做网站怎么备案网络服务有限公司
  • 网站主页特效欣赏百度官网下载电脑版
  • php mysql开发网站开发任何小说都能搜到的软件
  • the7 wordpress主题宁波seo外包费用
  • 云南建筑培训网seo刷点击软件
  • 男女做暖网站h5页面制作平台
  • 可以做puzzle的网站百度关键词排名提升工具
  • 竞网网站建设南宁网站seo大概多少钱
  • 114黄页信息网宝鸡seo培训
  • 东南亚做棋牌网站挖掘爱站网
  • 中国工程建设招标网官方网站谷歌查询关键词的工具叫什么
  • wordpress管理员密码忘记成都seo招聘
  • 武汉企业建站系统模板下载官方正版百度
  • 上海做网站国际财经新闻
  • 用废旧盒子做家用物品网站seo排名工具
  • 企业铭做网站域名解析在线查询
  • 怎么注册自己的小程序网站优化分析
  • 荆州网站建设流程网站设计培训
  • 网站支付怎么做的seo职业技能培训班
  • 做csgo直播网站上海知名网站制作公司
  • 深圳住建局官方网站seo网站关键词优化快速官网
  • 网站建设需要php吗企业的互联网推广
  • 苏中建设集团官方网站电商软文广告经典案例
  • 网站开发需要什么开发工具代做百度首页排名价格
  • 北京网站设计多少钱微信引流推广
  • 网站建设实施背景分析百度指数里的资讯指数是什么