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

西安摩高网站建设网站开发的发展

西安摩高网站建设,网站开发的发展,网站优化合同,wordpress禁用谷歌的插件题目来源 力扣106从中序和后序遍历序列构造二叉树 题目概述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 思路分析 后序遍历序列的最末尾数…

题目来源

力扣106从中序和后序遍历序列构造二叉树

题目概述

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。

思路分析

后序遍历序列的最末尾数据为树的根节点。 在中序遍历序列中找到树的根节点就可以找到这棵树的左子树范围和右子树范围。 分析方法与从前序与中序遍历序列构造二叉树类似。

代码实现

java实现

public class Solution {Map<Integer, Integer> inorderIndexMap = new HashMap<>();public TreeNode buildTree(int[] inorder, int[] postorder) {// 中序遍历序列数据与下标映射,便于后续查找for (int i = 0; i < inorder.length; i++) {inorderIndexMap.put(inorder[i],i);}return create(inorder, postorder ,0, inorder.length - 1, 0, postorder.length - 1);}private TreeNode create(int[] inorder, int[] postorder, int iStart, int iEnd, int pStart, int pEnd) {if (pEnd < pStart) {return null;}// 构建当前子树根节点int current = postorder[pEnd];TreeNode root = new TreeNode(current);// 当前节点在中序遍历序列的位置int rootIndexInInorder = inorderIndexMap.get(current);// 右子树长度int rightSubTreeSize = iEnd - rootIndexInInorder;// 构建左右子树root.right = create(inorder,postorder, rootIndexInInorder + 1, iEnd ,pEnd - rightSubTreeSize, pEnd - 1);root.left = create(inorder,postorder, iStart,rootIndexInInorder - 1,pStart, pEnd - rightSubTreeSize - 1);return root;}
}

c++实现

class Solution {
public:unordered_map<int, int> inorder_data_and_index;TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {// 中序遍历序列数据与下标映射,便于后续查找for (int i = 0; i < inorder.size(); i++) {inorder_data_and_index[inorder[i]] =  i;}return create(inorder, postorder, 0, inorder.size() - 1, 0, postorder.size() - 1);}TreeNode* create(vector<int>& inorder, vector<int>& postorder, int iStart, int iEnd, int pStart, int pEnd) {if (pEnd < pStart) {return nullptr;}// 构建当前子树根节点int current = postorder[pEnd];TreeNode* root = new TreeNode(current);// 当前节点在中序遍历序列的位置int rootIndexInInorder = inorder_data_and_index[current];// 右子树长度int rightSubTreeSize = iEnd - rootIndexInInorder;// 构建左右子树root->right = create(inorder, postorder, rootIndexInInorder + 1, iEnd, pEnd - rightSubTreeSize, pEnd - 1);root->left = create(inorder, postorder, iStart, rootIndexInInorder - 1, pStart, pEnd - rightSubTreeSize - 1);return root;}
}

http://www.yayakq.cn/news/48405/

相关文章:

  • 网站速度的重要性程序员必备工具
  • 全球新闻最新消息百度关键词优化大师
  • 网站建设 题目wordpress 主题next
  • 门户网站建设公司流程做网站推广多少钱
  • 做网站怎么带流量网站建设结课小论文
  • 一个网站的建设流程有哪些资料网络管理网址
  • 百家号淄博圻谷网站建设微信上优惠券的网站怎么做的
  • 土建设计网站烟台网站建设在哪
  • 网站建设费算费用还是固定资产微信网站名
  • 东源县住房和城乡建设部网站咖啡网站模板
  • 网站域名等级天河怎样优化网站建设
  • 电子商务做网站开网站怎么开
  • 电子商务网站建站怎么给自己喜欢的人做网站
  • 免费网站正能量ecommercial+wordpress
  • 做备案的网站建筑模板是什么东西
  • 安仁网站制作网站建设的生存期模型
  • 小企业网站建设有什么用金华网站建设公司
  • 济源做网站公司wordpress 帝国王
  • 金色财经网站开发中国建筑网官网总公司
  • 东莞想做网站找什么公司云天下网站建设
  • 网站建设合同缴印花税烟台专业做网站的公司
  • 怎么用vs2010做网站设计外包公司有哪些
  • 江苏齐力建设集团网站wordpress 主机什么系统
  • 做高档衣服的网站腾讯云服务器网站建设
  • 可视化手机网站开发工具原阳县建站塔山双喜
  • 0基础 网站建设wordpress和帝国哪个好
  • 上海网站建设多少网站建设方为客户提供使用说明书
  • 请问做卖东西网站怎么wordpress 层叠标签
  • 百度收录好最快的网站重庆住房和城乡建设厅网站
  • 深圳西乡地铁站新的购物网站怎么做流量分析