网站的ci设计怎么做网络规划设计师和网络工程师
2026/5/21 16:46:50 网站建设 项目流程
网站的ci设计怎么做,网络规划设计师和网络工程师,黄页是什么应用,二级不死域名制作方法求解代码 // 存储最终结果#xff1a;key 二叉树的层级#xff08;根节点在第0层#xff09;#xff0c;value 该层级【最右侧】的节点值private HashMapInteger, Integer ans new HashMap();// 预处理哈希表#xff1a;key中序数组的节点值#xff0…求解代码// 存储最终结果key 二叉树的层级根节点在第0层value 该层级【最右侧】的节点值privateHashMapInteger,IntegeransnewHashMap();// 预处理哈希表key中序数组的节点值value该值在中序数组的下标privateHashMapInteger,IntegermapnewHashMap();// 前序数组的全局遍历指针按「根→左→右」的前序规则依次取当前递归层的根节点取完自增privateintlevel0;publicvoidbuildTree(int[]preOrder,int[]inOrder,intleft,intright,inti){if(leftright){return;}// 按前序顺序取根节点通过哈希表拿到根节点在中序数组的下标indexintindexmap.get(preOrder[level]);// 递归构建左子树中序区间[left, index-1]子节点层级 父层级1buildTree(preOrder,inOrder,left,index-1,i1);// 递归构建右子树中序区间[index1, right]子节点层级 父层级1buildTree(preOrder,inOrder,index1,right,i1);// 存入当前节点到对应层级后存的节点会覆盖先存的 → 最终保留该层最右侧节点ans.put(i,inOrder[index]);}publicint[]solve(int[]preOrder,int[]inOrder){for(inti0;iinOrder.length;i){map.put(inOrder[i],i);}buildTree(preOrder,inOrder,0,preOrder.length-1,0);int[]tempnewint[ans.size()];for(inti0;ians.size();i){temp[i]ans.get(i);}returntemp;}小贴士解释一下这行代码ans.put(i, inOrder[index]);可以拿到「每层最右侧」的节点因为在递归时是先递归构建左子树再递归构建右子树这个顺序意味着在同一层级中「左侧节点」会被先处理「右侧节点」被后处理。对于哈希表来说相同key的put操作会覆盖原值在同一层级中不管有多少个节点最终只会存最后一次 put 的那个值。所以同一层级的右侧节点一定是最后一个被put的所以最终ans.get(i)拿到的一定是「第 i 层最右侧的节点值」。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询