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

商城建设网站公司部标平台软件网站开发

商城建设网站公司,部标平台软件网站开发,竞价关键词优化软件,电脑字体wordpress找树左下角的值 题目 参考文章 思路#xff1a;这里寻找最左下角的值#xff0c;其实用前中后序都是可以的#xff0c;只要保证第一遍历的是左边开始就可以。设置Deep记录遍历的最大深度#xff0c;deep记录当前深度。当遇到叶子节点时而且当前深度比最大深度还大则更换最…找树左下角的值 题目 参考文章 思路这里寻找最左下角的值其实用前中后序都是可以的只要保证第一遍历的是左边开始就可以。设置Deep记录遍历的最大深度deep记录当前深度。当遇到叶子节点时而且当前深度比最大深度还大则更换最大深度为deep并存储当前节点的值这个时候说明遇到的就是当前深度下最左边的叶子节点但不一定是最最大深度的最左边的叶子节点还要继续往后遍历。最后value存储的结果就是最大深度下最左下角的值了 代码 class Solution {private int Deep -1;private int value 0;public int findBottomLeftValue(TreeNode root) {value root.val;findLeftValue(root,0);return value;}private void findLeftValue (TreeNode root,int deep) {if (root null) return;if (root.left null root.right null) {if (deep Deep) {value root.val;Deep deep;}}if (root.left ! null) findLeftValue(root.left,deep 1);if (root.right ! null) findLeftValue(root.right,deep 1);} } 路径总和 题目1 题目2 参考文章 思路1其实这里的用前中后序都是可以的重要的是回溯的过程。每次遍历节点就把target值减去当前节点值然后判断是否为叶子节点如果是叶子节点就直接返回true因为题目意思就是遇到一条路径等于target值就直接返回即可。当不是叶子节点且节点不为空就继续遍历节点值直到遇到一条路径等于target就一直返回true到根节点否则就是返回false 代码1 class Solution {public boolean hasPathSum(TreeNode root, int targetSum) {if (root null) {return false;}targetSum - root.val;// 叶子结点if (root.left null root.right null) {return targetSum 0;}if (root.left ! null) {boolean left hasPathSum(root.left, targetSum);if (left) { return true;}}if (root.right ! null) {boolean right hasPathSum(root.right, targetSum);if (right) { return true;}}return false;} } 思路2 这题和题目1其实思路一样只是不是直接返回true而是把这条路径的值全部存起来最后把所有等于target值的路径输出 代码2 class Solution {public ListListInteger pathSum(TreeNode root, int targetSum) {ListListInteger res new ArrayList();if (root null) return res; ListInteger path new LinkedList();preorderdfs(root, targetSum, res, path);return res;}public void preorderdfs(TreeNode root, int targetsum, ListListInteger res, ListInteger path) {path.add(root.val);// 遇到了叶子节点if (root.left null root.right null) {// 找到了和为 targetsum 的路径if (targetsum - root.val 0) {res.add(new ArrayList(path));}return; // 如果和不为 targetsum返回}if (root.left ! null) {preorderdfs(root.left, targetsum - root.val, res, path);path.remove(path.size() - 1); // 回溯}if (root.right ! null) {preorderdfs(root.right, targetsum - root.val, res, path);path.remove(path.size() - 1); // 回溯}} } 从中序与后序遍历序列构造二叉树 题目 参考文章 思路其实这道题就是理解二叉树的一个过程构建二叉树首先得知道前序中序或中序后序知道前序后序是不能构造二叉树的。以后序中序为例这里重要的是找到根节点以及找到根节点后如何分割这个后序中序数组。后序数组中最后一个元素就是根节点然后通过这个根节点的值找到在对应中序的下标index找到下标之后就是分割后序中序数组通过index找到左中序右中序以及左后序和右后序重点注意右中序因为涉及数组溢出和超出数组范围的情况主要是因为在中序数组中间会出现要构建子树的情况得到分割后的数组就继续调用构建树的方法即可 代码 class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {if(postorder.length 0 || inorder.length 0)return null;return buildHelper(inorder, 0, inorder.length, postorder, 0, postorder.length);}private TreeNode buildHelper(int[] inorder, int inorderStart, int inorderEnd, int[] postorder, int postorderStart, int postorderEnd){if(postorderStart postorderEnd)return null;int rootVal postorder[postorderEnd - 1];TreeNode root new TreeNode(rootVal);int middleIndex;for (middleIndex inorderStart; middleIndex inorderEnd; middleIndex){if(inorder[middleIndex] rootVal)break;}int leftInorderStart inorderStart; int leftInorderEnd middleIndex;int rightInorderStart middleIndex 1;int rightInorderEnd inorderEnd;int leftPostorderStart postorderStart;int leftPostorderEnd postorderStart (middleIndex - inorderStart);//这个是为了防止数组溢出因为有可能中序数组中间部分是要构建树的所以postorderStart和inorderStart可能不为零的情况所以要减去int rightPostorderStart leftPostorderEnd;int rightPostorderEnd postorderEnd - 1;root.left buildHelper(inorder, leftInorderStart, leftInorderEnd, postorder, leftPostorderStart, leftPostorderEnd);root.right buildHelper(inorder, rightInorderStart, rightInorderEnd, postorder, rightPostorderStart, rightPostorderEnd);return root;} }
http://www.hkea.cn/news/14422269/

相关文章:

  • 宇宙企画网站建网站网
  • 建设网站合同文档263网站建设怎么样
  • 网站设计公司模板下载答题app怎么制作
  • 快速wordpress 建网站怎么下载网页上的视频
  • psd企业网站模板做网站里面的图片像素要求
  • html网站地图在线生成廊坊做网站公司
  • 昆山规划建设局网站网络维护员工作内容
  • 购物网站服务器价格简历免费模板下载
  • 重庆网站空间主机评价做360手机网站快速排名软件
  • 做网站用什么开源程序网页设计制作报价
  • 上海网站建设哪里便宜怎样运营网站
  • 建设工程扣分查询网站中国黄金集团j建设公司网站
  • 电脑禁止访问网站设置网站建设及发展
  • 肥城网站建设广州外地车牌建设在线购物网站
  • 网站推广教程wordpress json api
  • 郑州做网站找赢博科技大连建设网球场价格
  • 网站开发实战asp制作视频教程驻马店市做网站
  • 徐州网站无障碍建设北京网站建设主页
  • 广东省住房城乡建设厅网站住房和城乡建设部标准定额网站
  • 男男床做视频网站在线如何做可以赚钱的网站
  • 伪原创嵌入网站初期做网站
  • wordpress付费建站小规模企业所得税2023年税收政策
  • 住房和建设建设局网站化妆品网站欣赏
  • 58临沂网站建设网站建设客源
  • 网站地图提交给百度wordpress微信登录的插件
  • 免费建立个人网站广州网络营销推广
  • 石排镇专业建站公司教医学生做科研的网站有哪些
  • 深圳龙华做网站微信公众号的微网站怎么做
  • zzcms网站开发wordpress的主机
  • 宁波建站服务做网站备案什么意思