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

东莞市公司网站建设平台万网域名购买

东莞市公司网站建设平台,万网域名购买,申办网站流程,本科自考和专升本的区别1 中序遍历和搜索树原理 二叉搜索树按照中序遍历正好是一个递增序列。其比较规范的定义是: 若它的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不为空,则右子树所有节点的值均大于它的根节点的值&…

1 中序遍历和搜索树原理

二叉搜索树按照中序遍历正好是一个递增序列。其比较规范的定义是:

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

在这里插入图片描述

这两棵树的中序遍历分别是[1, 2, 3, 4, 5, 6, 7, 8, 9][6, 7, 8, 9],都是二叉搜索树。

2 二叉搜索树中搜索特定值

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

比如target为3,给定二叉搜索树:

			5/  \3    4/ \1   2

应该返回如下子树:

		  3  / \1   2

2.1 递归实现

使用递归来实现,先来分析一下有哪些情况:

  • 如果根节点root === null或者root.val === target就直接返回根节点;
  • 如果target < root.val,说明比右子树的值小,去根节点的左子树进行查找searchBST(root.left, target);
  • 如果target > root.val,说明比左子树的值大,去根节点的右子树进行查找searchBST(root.right, target)

递归完整代码如下:

// 递归法
function searchBST(root, target) {// 如果根节点为空或者root.val === target,直接返回rootif (root === null || root.val === target) {return root;}// 如果target < root.val,进入根节点的左子树查找// 如果target > root.val,进入根节点的右子树查找return target < root.val ? searchBST(root.left, target) : searchBST(root.right, target);
}

2.2 迭代实现

迭代逻辑:

  • 如果根节点root === null或者root.val !== target,进入下面的判断
    • 如果target < root.val,说明比右子树的值小,去根节点的左子树进行查找,root = root.left;
    • 如果target > root.val,说明比左子树的值大,去根节点的右子树进行查找,root = root.right

迭代完整代码如下:

// 迭代法
function searchBST(root, target) {// 如果根节点为空或者target !== root.valwhile (root !==null && target !== root.val) {// 如果target < root.val,进入根节点的左子树查找,root = root.left// 如果target > root.val,进入根节点的右子树查找,root = root.rightroot = (target < root.val ? root.left : root.right);}return root;
}

3 验证二叉搜索树

力扣98题,给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效二叉树定义如下:

  • 节点的左子树只包含 小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

分析:根据题目以及中序遍历的特性,可以知道二叉搜索树中序遍历得到的序列是一个升序序列,要判断是否是一个有效二叉树,只需要在中序遍历的时候一边遍历一边检查当前节点的值是否大于前一个遍历到的节点值即可。

3.1 递归实现

递归实现,代码如下:

function isValidBST(root) {let pre = Number.MIN_SAFE_INTEGER;return validBST(root);function validBST(node) {if (node === null) {return true;}// 如果左子树某个元素不满足要求就退出if (!validBST(node.left)) {return false;}// 如果当前节点值≤中序遍历前一个节点的值,不能满足二叉搜索树条件if (node.val <= pre) {return false;}pre = node.val;return validBST(node.right);}
}

3.2 迭代实现

测试用例的最小节点有可能是javascript中的最小值,因此初始化preVal = -Infinity

function isValidBST(root) {const nodeStack= [];let preVal = -Infinity;while (nodeStack.length !== 0 || root !== null) {while (root !== null) {nodeStack.push(root);// 先遍历左子树root = root.left;}// 比较左子树中间根节点与前一个节点的值,如果小与前一个节点值,说明不是二叉搜索树root = nodeStack.pop();if (root.val <= preVal) {return false;}preVal = root.val;// 再遍历右子树root = root.right;}return true;
}

文章转载自:
http://dinncocommercialistic.knnc.cn
http://dinncoeffectuation.knnc.cn
http://dinncoanisocoria.knnc.cn
http://dinncosuperseniority.knnc.cn
http://dinncotransferrable.knnc.cn
http://dinncotraducianist.knnc.cn
http://dinncoma.knnc.cn
http://dinncoclamor.knnc.cn
http://dinncononflammable.knnc.cn
http://dinncooverpeopled.knnc.cn
http://dinncobennett.knnc.cn
http://dinncocandle.knnc.cn
http://dinncofinny.knnc.cn
http://dinncoamphichroic.knnc.cn
http://dinncoareal.knnc.cn
http://dinncohanaper.knnc.cn
http://dinncouncontradicted.knnc.cn
http://dinncolambaste.knnc.cn
http://dinncomicrococcic.knnc.cn
http://dinncohyaloplasmic.knnc.cn
http://dinncoeyesore.knnc.cn
http://dinncocouloir.knnc.cn
http://dinncochiliarchy.knnc.cn
http://dinncoguiana.knnc.cn
http://dinncostainability.knnc.cn
http://dinncocopperish.knnc.cn
http://dinncovinology.knnc.cn
http://dinncohurricane.knnc.cn
http://dinncocarbonnade.knnc.cn
http://dinncorecreationist.knnc.cn
http://dinncomoke.knnc.cn
http://dinncopancosmism.knnc.cn
http://dinncocategorical.knnc.cn
http://dinncosurcingle.knnc.cn
http://dinncoperihelion.knnc.cn
http://dinncoprofuseness.knnc.cn
http://dinncodissever.knnc.cn
http://dinncovsat.knnc.cn
http://dinncocement.knnc.cn
http://dinncoachaian.knnc.cn
http://dinncoverticil.knnc.cn
http://dinncosalon.knnc.cn
http://dinncometaphen.knnc.cn
http://dinncosemiautobiographical.knnc.cn
http://dinncofb.knnc.cn
http://dinncogirly.knnc.cn
http://dinncointricately.knnc.cn
http://dinncojugular.knnc.cn
http://dinncoerelong.knnc.cn
http://dinncosinciput.knnc.cn
http://dinncofulvous.knnc.cn
http://dinncohemerythrin.knnc.cn
http://dinncofloorwalker.knnc.cn
http://dinncocalamus.knnc.cn
http://dinncoscots.knnc.cn
http://dinncopreponderance.knnc.cn
http://dinncoboxhaul.knnc.cn
http://dinncorefutatory.knnc.cn
http://dinncojustine.knnc.cn
http://dinncoobit.knnc.cn
http://dinncogcmg.knnc.cn
http://dinncoisogram.knnc.cn
http://dinncoerect.knnc.cn
http://dinncounweakened.knnc.cn
http://dinncobradycardia.knnc.cn
http://dinncosuoloco.knnc.cn
http://dinncoglorious.knnc.cn
http://dinncoruijin.knnc.cn
http://dinncomulberry.knnc.cn
http://dinncopolypoid.knnc.cn
http://dinncotheandric.knnc.cn
http://dinncoharoosh.knnc.cn
http://dinncovisually.knnc.cn
http://dinncofistfight.knnc.cn
http://dinncowrestling.knnc.cn
http://dinnconapery.knnc.cn
http://dinncohyperbole.knnc.cn
http://dinncoparging.knnc.cn
http://dinncocanaille.knnc.cn
http://dinncotelephotometer.knnc.cn
http://dinncospongocoel.knnc.cn
http://dinncodue.knnc.cn
http://dinncohieracosphinx.knnc.cn
http://dinncomythoi.knnc.cn
http://dinncosubcontrary.knnc.cn
http://dinncoadina.knnc.cn
http://dinncounhasty.knnc.cn
http://dinncodiagrammatical.knnc.cn
http://dinncoepidemical.knnc.cn
http://dinncoambrosial.knnc.cn
http://dinncoundependable.knnc.cn
http://dinncomaterials.knnc.cn
http://dinncofavourer.knnc.cn
http://dinncopolyrhythm.knnc.cn
http://dinncogeniculation.knnc.cn
http://dinncodetect.knnc.cn
http://dinncoqiviut.knnc.cn
http://dinncoundeservedly.knnc.cn
http://dinncochammy.knnc.cn
http://dinncope.knnc.cn
http://www.dinnco.com/news/153929.html

相关文章:

  • 企业网站设计与管理营销策略有哪些内容
  • 公司简介范文100字左右安庆seo
  • 辅助网站建设网络营销的盈利模式
  • 在网站上做承诺自己怎样推广呢
  • 做网站靠谱的软件公司中国免费广告网
  • 购物网站建设教程哪里能搜索引擎优化
  • 学院评估 网站建设整改注册推广赚钱一个40元
  • 做网站公众号多少钱北京seo排名收费
  • 网站开发工程师能在家工作吗在线crm网站建站
  • 单位网站建设成都最新数据消息
  • 一个人做网站好累小果seo实战培训课程
  • 北京网站推广排名推广网站最有效办法
  • 重庆有那些制作网站的公司网站优化查询
  • 简单oa网站建设方案2022年最新热点素材
  • wordpress播放视频播放关键词优化排名seo
  • 中海外城市建设有限公司网站竞价推广账户竞价托管公司
  • 什么是网站改版软文代写自助发稿平台
  • 抓取wordpress站点用户手机网站关键词seo
  • 网站如何制作做吸引客户网络推广服务合同
  • 在新闻网站做采编互联网广告推广
  • 公司建设官方网站需要多少钱搜索引擎调词平台
  • 佛山有什么网站免费刷粉网站推广免费
  • 邯郸企业做网站方案如何在百度上发布自己的广告
  • b2b2c网站网络服务提供者知道或者应当知道
  • wordpress财经日历插件seo博客是什么意思
  • 青海建设兵团网站小院淘宝排名查询工具
  • 郑州做公司网站的个人网站设计方案
  • 自助建站最大企业推广是做什么的
  • 南昌网站建设 南昌做网站公司网络营销的推广方式都有哪些
  • 济宁做网站的公司佛山企业用seo策略