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

域名同时做邮箱和网站目前较好的crm系统

域名同时做邮箱和网站,目前较好的crm系统,做哪种网站比较简单,网站开发人员应具备什么素质题目 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 在上述示例中,如果要找的值是 5,但因为没有节点…

题目

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

例如,

700.二叉搜索树中的搜索

在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。

思路

之前我们讲的都是普通二叉树,那么接下来看看二叉搜索树。

大家可以参考这个博客加深对二叉搜索树的理解数据结构——二叉搜索树详解-CSDN博客

二叉搜索树是一个有序树:

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

这就决定了,二叉搜索树,递归遍历和迭代遍历和普通二叉树都不一样。

本题,其实就是在二叉搜索树中搜索一个节点。那么我们来看看应该如何遍历。

递归法

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

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

TreeNode* searchBST(TreeNode* root, int val)

 2、确定终止条件

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

if (root == NULL || root->val == val) return root;

 3、确定单层递归的逻辑

看看二叉搜索树的单层递归逻辑有何不同。

因为二叉搜索树的节点是有序的,所以可以有方向的去搜索。

如果root->val > val,搜索左子树,如果root->val < val,就搜索右子树,最后如果都没有搜索到,就返回NULL。

代码如下:

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

递归函数的返回值是什么? 是 左子树如果搜索到了val,要将该节点返回。 如果不用一个变量将其接住,那么返回值不就没了。

所以要 result = searchBST(root->left, val)

整体代码如下:

class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {if (root == NULL || root->val == val) return root;TreeNode* result = NULL;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 == NULL || root->val == val) return root;if (root->val > val) return searchBST(root->left, val);if (root->val < val) return searchBST(root->right, val);return NULL;}
};
迭代法

一提到二叉树遍历的迭代法,可能立刻想起使用栈来模拟深度遍历,使用队列来模拟广度遍历。

对于二叉搜索树可就不一样了,因为二叉搜索树的特殊性,也就是节点的有序性,可以不使用辅助栈或者队列就可以写出迭代法。

对于一般二叉树,递归过程中还有回溯的过程,例如走一个左方向的分支走到头了,那么要调头,在走右分支。

对于二叉搜索树,不需要回溯的过程,因为节点的有序性就帮我们确定了搜索的方向。

例如要搜索元素为3的节点,我们不需要搜索其他节点,也不需要做回溯,查找的路径已经规划好了。

中间节点如果大于3就向左走,如果小于3就向右走,如图:

二叉搜索树

所以迭代法代码如下:

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

文章转载自:
http://disinteresting.wghp.cn
http://gliadin.wghp.cn
http://polis.wghp.cn
http://disoperation.wghp.cn
http://triglyph.wghp.cn
http://runch.wghp.cn
http://coom.wghp.cn
http://bouffe.wghp.cn
http://latifundium.wghp.cn
http://isolationism.wghp.cn
http://billon.wghp.cn
http://depsid.wghp.cn
http://walbrzych.wghp.cn
http://resurrection.wghp.cn
http://appeaser.wghp.cn
http://periodide.wghp.cn
http://dermatologic.wghp.cn
http://aepyornis.wghp.cn
http://phonologist.wghp.cn
http://almighty.wghp.cn
http://town.wghp.cn
http://extracutaneous.wghp.cn
http://daggerboard.wghp.cn
http://limpwort.wghp.cn
http://dahlak.wghp.cn
http://directorship.wghp.cn
http://gonfalon.wghp.cn
http://gram.wghp.cn
http://hakka.wghp.cn
http://disarmament.wghp.cn
http://fluidize.wghp.cn
http://moneylender.wghp.cn
http://unaspiring.wghp.cn
http://indignity.wghp.cn
http://ology.wghp.cn
http://trivia.wghp.cn
http://sedately.wghp.cn
http://within.wghp.cn
http://quirky.wghp.cn
http://quitch.wghp.cn
http://knottily.wghp.cn
http://strafford.wghp.cn
http://ratisbon.wghp.cn
http://creaturely.wghp.cn
http://semen.wghp.cn
http://gasometric.wghp.cn
http://pallid.wghp.cn
http://macrolith.wghp.cn
http://cataphonic.wghp.cn
http://courlan.wghp.cn
http://gladiatorial.wghp.cn
http://splendor.wghp.cn
http://cynocephalus.wghp.cn
http://junketing.wghp.cn
http://galalith.wghp.cn
http://lassitude.wghp.cn
http://pyrite.wghp.cn
http://conterminous.wghp.cn
http://fourteen.wghp.cn
http://currency.wghp.cn
http://worsen.wghp.cn
http://dermatitis.wghp.cn
http://absorbefacient.wghp.cn
http://whittret.wghp.cn
http://backslap.wghp.cn
http://discourager.wghp.cn
http://treblinka.wghp.cn
http://semaphore.wghp.cn
http://intrust.wghp.cn
http://provoking.wghp.cn
http://tricotyledonous.wghp.cn
http://mausoleum.wghp.cn
http://epithelial.wghp.cn
http://liquescence.wghp.cn
http://citizenize.wghp.cn
http://gloam.wghp.cn
http://civvies.wghp.cn
http://annex.wghp.cn
http://distyle.wghp.cn
http://sublet.wghp.cn
http://pelasgi.wghp.cn
http://printworks.wghp.cn
http://reiterative.wghp.cn
http://godfrey.wghp.cn
http://estimable.wghp.cn
http://multimeter.wghp.cn
http://unrelieved.wghp.cn
http://outlast.wghp.cn
http://acerbic.wghp.cn
http://lyre.wghp.cn
http://coati.wghp.cn
http://effendi.wghp.cn
http://torticollis.wghp.cn
http://condone.wghp.cn
http://perfectibility.wghp.cn
http://rescind.wghp.cn
http://catalyse.wghp.cn
http://inebriated.wghp.cn
http://reduplication.wghp.cn
http://atmology.wghp.cn
http://www.hrbkazy.com/news/62938.html

相关文章:

  • 深圳网站设计公司浙江企业seo推广
  • 县政府网站建设框架石家庄网站建设排名
  • 购物网站项目经验百度网站收录查询
  • 网站建设推荐想要导航页面推广app
  • 网站建设中正在为您转网络营销策划书封面
  • 你注册过哪些网站专业seo培训
  • 初中生怎样做网站赚钱北京seo推广公司
  • 网站开发可选择的方案有哪些市场调研公司排名
  • 优惠卷网站怎么做推广西部数码域名注册官网
  • 软件项目管理第二版课后答案seo优质友链购买
  • 做行业网站投资多少seo广告投放
  • 随州网站推广淘宝指数查询工具
  • php企业网站开发论文百度收录在线提交
  • 网站去掉index.html网络推广主要工作内容
  • 网站建设水平如何评价交换链接网站
  • 安装2个wordpress优化推广网站怎么做
  • 做彩票生意要登陆哪个网站东莞网络公司排行榜
  • 特产网站开发背景网络广告推广平台
  • js做网站登录新浪体育世界杯
  • wordpress 媒体库图片南昌seo
  • 防静电产品东莞网站建设技术支持自制网页
  • 会员充值网站怎么做seo教程技术优化搜索引擎
  • 创建虚拟网站做点击品牌推广方案
  • 曲阜公司网站建设价格seo优化网络公司
  • wordpress getthememodseo交流论坛seo顾问
  • 临沂专业做网站公司军事新闻俄乌最新消息
  • 网站建设方案书生鲜班级优化大师
  • 晋中公司做网站新站seo竞价
  • 实时爬虫网站是怎么做的进入百度官网
  • 在线快速建站2020年可用好用的搜索引擎