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

网站导航菜单兰官方网站找做化妆品套盒子

网站导航菜单兰,官方网站找做化妆品套盒子,wordpress语言包插件,wordpress页面提交参数题目引用 找树左下角的值路径总和从中序与后序遍历构造二叉树 今天就简简单单三道题吧~ 1. 找到树左下角的值 给定一个二叉树的 根节点 root#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 我们…题目引用 找树左下角的值路径总和从中序与后序遍历构造二叉树 今天就简简单单三道题吧~ 1. 找到树左下角的值 给定一个二叉树的 根节点 root请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 我们来分析一下题目最底层的叶子节点所以我们要求出树的深度并且进行判断他是否到达底层。首先我们定义一个全局变量res和全局变量maxDep来记录递归过程中更深的节点和更深节点的值。然后我们判断当前节点有没有左右孩子节点如果有我们递归进那个节点并更新res和maxDep同时定义局部变量depth将其后传进下一层当其操作完返回这一层时将depth--用作向右孩子递归的参数。而这个过程就叫做回溯。 我们来看代码 int res;int maxDepINT_MIN;void travisal(TreeNode* root,int depth){if(root-leftNULLroot-rightNULL){if(depthmaxDep){maxDepdepth;resroot-val;}return;}if(root-left){depth;travisal(root-left,depth);depth--;}if(root-right){depth;travisal(root-right,depth);depth--;}}int findBottomLeftValue(TreeNode* root) {travisal(root,0);return res;}2.路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径这条路径上所有节点值相加等于目标和 targetSum 。如果存在返回 true 否则返回 false 。 叶子节点 是指没有子节点的节点。 示例 1 输入root [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum 22 输出true 解释等于目标和的根节点到叶节点路径如上图所示。 我们来看题目这道题其实知道了原理就和上道题大差不差了。上一道题目是找到最底层的节点的值而这一道题目是找到一条相加为0的路径两道题目都需要我们在二叉树中一层一层的寻找符合条件的节点并且返回它那么我们是不是不难写出这样的模版 看情况返回类型 traversal(TreeNode* root,//第二变量用于判断){//对每一个节点要做的操作if(root-left){//增加条件//递归左边//减少条件}if(root-right){//增加条件//递归右边//减少条件}//考虑是否返回}那么我们在这道题就将相加改为一开始就有一个变量等于targetSum逐层减去每个节点的val一旦0就返回true。 来看代码 bool traversal(TreeNode* root,int count){if(!root-left!root-rightcount0) return true;if(!root-left!root-right) return false;if(root-left){count-root-left-val;if(traversal(root-left,count)) return true;countroot-left-val;}if(root-right){count-root-right-val;if(traversal(root-right,count)) return true;countroot-right-val;}return false;}bool hasPathSum(TreeNode* root, int targetSum) {if(rootNULL) return false;return traversal(root,targetSum-root-val);}大家看一旦我们整理出规律是不是这类题目我们只要考虑细节条件就能迎刃而解呢 3.从中序与后序遍历构造二叉树 给定两个整数数组 inorder 和 postorder 其中 inorder 是二叉树的中序遍历 postorder 是同一棵树的后序遍历请你构造并返回这颗 二叉树 。 示例 1: 输入inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出[3,9,20,null,null,15,7] 这道题目我们在学习数据结构时就做过现在只要模拟过程就能解决啦。直接看代码 TreeNode* traversal(vectorint inorder,vectorint postorder){if(postorder.size()0) return NULL;int rootValuepostorder[postorder.size()-1];TreeNode* rootnew TreeNode(rootValue);if(postorder.size()1) return root;int delimitIndex;for(delimitIndex0;delimitIndexinorder.size();delimitIndex){if(inorder[delimitIndex]rootValue) break;}vectorint leftInorder(inorder.begin(),inorder.begin()delimitIndex);vectorint rightInorder(inorder.begin()delimitIndex1,inorder.end());postorder.resize(postorder.size()-1);vectorint leftPostorder(postorder.begin(),postorder.begin()leftInorder.size());vectorint rightPostorder(postorder.begin()leftInorder.size(),postorder.end());root-lefttraversal(leftInorder,leftPostorder);root-righttraversal(rightInorder,rightPostorder);return root;}TreeNode* buildTree(vectorint inorder, vectorint postorder) {if (inorder.size() 0 || postorder.size() 0) return NULL;return traversal(inorder, postorder);}总结 今天的题目其实就是昨天的拓展与提升大家务必将昨天的消化了再来做今天的题目。
http://www.hkea.cn/news/14520500/

相关文章:

  • 俄罗斯搜索引擎推广广州优化网站建设
  • wordpress 主题排行seo统计
  • 免费的个人空间建网站试用网站cms
  • 网站开发使用软件环境win7 iis新建网站
  • 做网站的原型文件下载上网站 ftp
  • 网站开发公司更换青浦网站建设su35
  • 重庆永川网站建设价格商城网站功能列表
  • 网站防注入怎么办棋牌游戏软件开发公司
  • 网站收录查询网做的比较好的货运网站
  • 网站打开文件按钮怎么做十大进销存管理软件
  • 网页设计网站制作视频教程校园网站网络文明建设
  • 洪湖网站建设1688精品货源网站入口
  • 网站建设亿玛酷技术徐州手机网站
  • 郑州网站建设设计怎么免费创建网址
  • 国外设计网站图片wordpress推荐形式模版
  • 高要区公路建设规划局网站工商注册网站
  • 陕西高速公路建设网站百度一下首页官网百度
  • 免费网站入口网站免费进ps软件lnmp一键包wordpress
  • 金华网站建设开发网站做电源
  • 龙岗义乌网站制作it培训班大概需要多少钱
  • 如何分析网站竞争对手山西公司网站建设效果
  • 网站内页301重定向西安建设工程信息网诚信平台
  • 网站开发成本评估网站没有收录原因
  • 哈尔滨网站建设策划方案网页标准化对网站开发维护的好处
  • 上海企业营销型网站建设4网站建设哪里好点
  • 系部网站建设需求分析运行需求中国建筑装饰网图片
  • 天津企业网站php网站开发速成
  • 青岛建站平台哪些软件可以做网站设计
  • 丹东市住房与城乡建设厅网站网站建设与优化推广方案内容
  • 做百度网站商标自动生成免费软件