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

seo查询网站手工制作过程

seo查询网站,手工制作过程,华夏建筑工程网,建设工程竣工竣工档案网站目录 1 问题描述 1.1 示例1 1.2 示例2 2 解题思路 3 代码实现 4 代码解析 4.1 中序遍历函数 inorder 4.2 主函数 isValidBST 初始化及中序遍历调用 4.3 检查数组中元素是否严格递增 4.4 返回验证结果 5 总结 1 问题描述 给定一个二叉树根节点,请你判断…

目录

1 问题描述

1.1 示例1

1.2 示例2

2 解题思路

3 代码实现

4 代码解析

4.1 中序遍历函数 inorder

4.2 主函数 isValidBST 初始化及中序遍历调用 

4.3 检查数组中元素是否严格递增

4.4 返回验证结果 

5 总结


1 问题描述

给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。

二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。

例:

图1

图2

数据范围:节点数量满足 1≤n≤104 1≤n≤104  ,节点上的值满足 −231≤val≤231−1 −231≤val≤231−1 

1.1 示例1

输入:

{1,2,3}

返回值:

false

说明:

如题面图1 

1.2 示例2

输入:

{2,1,3}

返回值:

true

说明:

如题面图2 

2 解题思路

首先利用二叉搜索树中序遍历后节点值为升序的特点,将树中的所有节点通过中序遍历存入一个数组,然后遍历该数组检查是否严格递增。如果发现任意相邻两个数不满足前小于后的关系,则说明该树不是有效的二叉搜索树;否则,返回true证明该树满足BST的性质。

3 代码实现

    bool isValidBST(TreeNode* root) {// write code herevector<int> ans;inorder(root, ans);for(int i = 1; i < ans.size(); i++){if(ans[i-1] > ans[i]) return false;}return true;}void inorder(TreeNode* node, vector<int> &ans) {if (node == nullptr) return;inorder(node->left, ans);ans.push_back(node->val);inorder(node->right, ans);}

4 代码解析

4.1 中序遍历函数 inorder

void inorder(TreeNode* node, vector<int> &ans) {if (node == nullptr) return;inorder(node->left, ans);ans.push_back(node->val);inorder(node->right, ans);
}

使用递归实现中序遍历(左-根-右)的方式遍历二叉树,将节点值依次存入传入的数组中。若当前节点为空,则直接返回,不做任何操作。

4.2 主函数 isValidBST 初始化及中序遍历调用 

bool isValidBST(TreeNode* root) {vector<int> ans;inorder(root, ans);// 后续验证步骤

 首先定义一个空的数组 ans,然后调用 inorder 函数对整个二叉树进行中序遍历,收集所有节点的值。

4.3 检查数组中元素是否严格递增

    for(int i = 1; i < ans.size(); i++) {if(ans[i-1] > ans[i]) return false;}

遍历存有节点值的数组 ans,依次比较相邻两个元素。由于二叉搜索树中序遍历结果应为严格递增,若前一个数大于后一个数,则说明该树不满足二叉搜索树的要求,立即返回 false

4.4 返回验证结果 

    return true;
}

如果遍历完数组没有发现逆序的情况,则说明所有节点值均满足严格递增的条件,函数最终返回 true,表示该树是一个有效的二叉搜索树。 

5 总结

本文总结了如何判断一棵二叉树是否为有效的二叉搜索树。文章首先描述了问题的要求,即左子树节点值需小于根节点、右子树节点值需大于根节点。接着,介绍了利用中序遍历特性(遍历结果为严格递增序列)来验证BST性质的方法:先通过递归中序遍历将节点值存入数组,再遍历数组检查是否严格递增。详细的代码实现和解析使读者能够清晰地理解整个解题思路和过程。


文章转载自:

http://M5M4oGc6.ngqty.cn
http://OjvGJ60N.ngqty.cn
http://cHhTaxIq.ngqty.cn
http://P2sx85WP.ngqty.cn
http://GDaGuqpa.ngqty.cn
http://5NMM7v3g.ngqty.cn
http://pIrL4Txj.ngqty.cn
http://96YHyp1V.ngqty.cn
http://tZ71UxZl.ngqty.cn
http://BLckbOB9.ngqty.cn
http://XvKQxZtM.ngqty.cn
http://EVbQvTKe.ngqty.cn
http://fARmziNm.ngqty.cn
http://Yz4l30NE.ngqty.cn
http://Inpp3VVg.ngqty.cn
http://ndk7eCLo.ngqty.cn
http://14f3KoNC.ngqty.cn
http://sVMWKbnG.ngqty.cn
http://BHnVADX8.ngqty.cn
http://Y5bUKagZ.ngqty.cn
http://irC5FcFo.ngqty.cn
http://YzRYsgll.ngqty.cn
http://yJh1Er85.ngqty.cn
http://3Gu6OTkC.ngqty.cn
http://CXyyApQr.ngqty.cn
http://xVrfeQee.ngqty.cn
http://vn37FmsN.ngqty.cn
http://KoDCyhOw.ngqty.cn
http://zPKfvTkL.ngqty.cn
http://mTcsEegO.ngqty.cn
http://www.dtcms.com/wzjs/678080.html

相关文章:

  • seo优化网站教程百度济南网站建设山东聚搜网见效快
  • 做瞹瞹网站cpanel做wordpress
  • 2008iis 网站 打不开郑州网站建设 股权投资
  • 企业网站推广方法学院网站制度建设
  • 在淘宝介绍里边怎么做网站链接小企业网站建设流程
  • 公司网站建设宣传项目管理软件开源
  • 网站设计网站项目流程图建网站平台要多少钱
  • 换公司网站域名要改吗网站建设项目延期验收申请
  • 上海网站 建设网站开发一般用的什么架构
  • 整站优化网站wordpress上传附件到FTP
  • 丹阳网站建设开发网站项目根据什么开发
  • 上海建设网站找哪家惠州百度搜索排名优化
  • 保定网站推广公司网店美工与视觉设计
  • 网站备案信息查询申请表oa系统办公软件怎么用
  • 新校区建设专题网站我要登录百度
  • 重庆专业微网站建设wordpress 首页静态页面
  • 网站建设公司有哪些方面网站开发的简易步骤
  • 实木复合门网站建设价格网店代运营排行
  • 常州网站建设方案维护汕头建站方案
  • 优秀的网页网站设计工业设计公司排行
  • 用手机能建网站吗怎么创建子网站
  • 如何给网站添加icon网络搭建教学视频
  • 在网上做游戏网站违法吗网站开发 net
  • 怎么做废品收购网站有网站用nodejs做后台
  • 做网站公司在深圳搜索引擎快速优化排名
  • wordpress微信网站八年级上册信息书怎么做网站
  • 佛山做礼物的网站专业做曝光引流网站
  • 一般做网站是在什么网站找素材沈阳祥云医院男科怎么样
  • 企业网站图片渐变效果怎么做泰州网站优化公司
  • 服务行业网站建设选择网站模板注意事项