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

免费微网站怎么做聚名网官网

免费微网站怎么做,聚名网官网,个人网页框架模板,网站建设战略欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 首先,根据先序遍历可以确定根节点E,再在中序遍历中通过E确定左树和右数 ; 设立inBegin和inEnd,通过这两个参数的游走,来进行子树的创建&a…

欢迎浏览高耳机的博客

希望我们彼此都有更好的收获

感谢三连支持!

 

首先,根据先序遍历可以确定根节点E,再在中序遍历中通过E确定左树和右数 ;

设立inBegin和inEnd,通过这两个参数的游走,来进行子树的创建;

已知根节点,则左子树的范围表示为(inBegin,rootIndex - 1);

而右子树为(rootIndex + 1,inEnd);

通过递归调用,即可不断创建子树,直到叶子节点;

如果inBegin > inEnd,则说明此时为叶子节点,应该返回上一层递归;

public TreeNode buildTree(int[] preorder, int[] inorder) {return buildTreeChilde(preorder, inorder, 0, inorder.length-1);
}private TreeNode buildTreeChilde(int[] preorder, int[] inorder, int inBegin, int inEnd) {if(inBegin > inEnd){return null;}TreeNode root = new TreeNode(preorder[preIndex]); // 创建根节点int rootIndex = findRootIndex(inorder, inBegin, inEnd, preorder[preIndex]); // 找到根节点在中序遍历中的位置preIndex++;root.left = buildTreeChilde(preorder, inorder, inBegin, rootIndex-1); // 递归构建左子树root.right = buildTreeChilde(preorder, inorder, rootIndex+1, inEnd); // 递归构建右子树return root;
}private int findRootIndex(int[] inorder, int inBegin, int inEnd, int key){for (int i = inBegin; i <= inEnd; i++) {if (key == inorder[i]) {return i;}}return -1;}

OJ链接:

https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/description/

 

同样的,根据后序遍历可以确定根节点,再在中序遍历中通过根节点确定左树和右数 ;

需要注意的是,由于postIndex根据后序遍历(左,右,根)创建,与前序遍历相反,所以每次递归时postIndex--,从根节点前的右子树开始递归;

同样的,已知根节点,则右子树表示范围为(rootIndex + 1,inEnd);

而左子树表示为(inBegin,rootIndex - 1);

通过递归调用,即可不断创建子树,直到叶子节点;

如果inBegin > inEnd,则说明此时为叶子节点,应该返回上一层递归;

 

public TreeNode buildTree(int[] inorder, int[] postorder) {postIndex = postorder.length-1;return buildTreeChilde(inorder, postorder, 0, inorder.length-1);
}private TreeNode buildTreeChilde(int[] inorder, int[] postorder, int inBegin, int inEnd) {if(inBegin > inEnd){return null;}TreeNode root = new TreeNode(postorder[postIndex]); // 创建根节点int rootIndex = findRootIndex(inorder, inBegin, inEnd, postorder[postIndex]); // 找到根节点在中序遍历中的位置postIndex--;root.right = buildTreeChilde(inorder, postorder, rootIndex+1, inEnd); // 递归构建右子树root.left = buildTreeChilde(inorder, postorder, inBegin, rootIndex-1); // 递归构建左子树return root;
}private int findRootIndex(int[] inorder, int inBegin, int inEnd, int key){for (int i = inBegin; i <= inEnd; i++) {if (key == inorder[i]) {return i;}}return -1;}

OJ链接:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/ 


希望这篇博客能为你理解java编程思想提供一些帮助。

如有不足之处请多多指出。

我是高耳机。 

http://www.mmbaike.com/news/36085.html

相关文章:

  • 杭州清风室内设计学校搜索引擎优化实验报告
  • 桂电做网站的毕设容易过嘛如何给企业做网络推广
  • 武汉做网站定价免费seo排名优化
  • 北京模板建站哪家好西安网站公司推广
  • 深圳短视频推广收费seo优化的作用
  • 香港网站备案号seo关键词软件
  • 苏州网站建设设计制作公司广州新一期lpr
  • 南昌专业制作网站设计谷歌账号注册入口官网
  • 怎么用WordPress搜索别人宁波优化关键词首页排名
  • 做化工的外贸网站都有什么网站seo诊断技巧
  • 佛山建设外贸网站公司吗苏州网站维护
  • 中山seo网站优化公司甘肃新站优化
  • 广州专业网站建设后台管理便捷短视频营销
  • 西樵做网站最新新闻热点事件2022
  • 网站建设技术工具网络营销整合营销
  • 在自己网站做blog全国新冠疫情最新消息
  • 珠海网站建设网络公司怎么样整站seo优化
  • 济宁网站建设招聘百度推广外推联系方式
  • 建网站卖虚拟资源需要怎么做百度推广怎么做免费
  • 移动端网站咋做seo推广公司
  • wordpress 批量企业网站seo排名
  • 沈阳市建设工程质量监督局网站百度推广怎么弄
  • 网站需求表格网络营销名词解释
  • 推荐设计感强的网站如何制作网页设计
  • 法院网站建设实施方案百度我的订单查询
  • 响应式网页设计什么意思aso优化平台有哪些
  • 沧州网站建设 网络服务宁波seo网络推广
  • 建网站需要哪些语言网页制作咨询公司
  • 厦门企业建站模板合肥网站建设优化
  • 桂林网站建设招聘百度搜索引擎优化方式