* 思路:先把数据转成Map存储,之后遍历的同时借助对象的引用,直接从Map找到对应的数据做存储 * */functionarrayToTree2(items){constresult=[];//存放结果集合constitemMap={};//先转为map存储for(constitemofitems){itemMap[item.id]={...item,children:[]}}for(constitemofitems){constid=item.id;const...
编写一个函数,输入是一个有序的数组: 接下来,我们编写一个函数,输入是一个有序的数组,表示二叉树的中序遍历序列。 在函数中,找到数组的中间元素作为根节点: 在函数中,我们找到数组的中间元素作为根节点。中间元素可以通过计算 (low + high) / 2 得到,其中 low 和high 分别表示当前考虑的子数组的起始和结束索...
var mid = parseInt(nums.length / 2); // 计算中间位置,数组下标从0开始,所以parseInt取整 var root = new TreeNode(nums[mid]); // 中间位置的元素作为树根 root.left = sortedArrayToBST(nums.slice(0, mid)); // 递归生成树的左子树 root.right = sortedArrayToBST(nums.slice(mid + 1)); //...