空压机东莞网站建设,专业网站设计制作服务,wap开头的网站,软件下载网站排行榜前十名目录
108. 将有序数组转换为二叉搜索树
代码#xff1a;
运行结果#xff1a; 给你一个整数数组 nums #xff0c;其中元素已经按 升序 排列#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不…
目录
108. 将有序数组转换为二叉搜索树
代码
运行结果 给你一个整数数组 nums 其中元素已经按 升序 排列请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1 输入nums [-10,-3,0,5,9]
输出[0,-3,9,-10,null,5]
解释[0,-10,5,null,-3,null,9] 也将被视为正确答案 示例 2 输入nums [1,3]
输出[3,1]
解释[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。提示 1 nums.length 104-104 nums[i] 104nums 按 严格递增 顺序排列 代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {// 「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树// 即将数组看作中序遍历[左根右]那么数组中间就看做根节点// 递归处理根据中序遍历确定根节点然后递归确定左子树右子树public TreeNode sortedArrayToBST(int[] nums) {// 给出数组本次需确定树的数组范围初始为0——数组结束return fun(nums,0,nums.length-1);}TreeNode fun(int[] nums,int beg,int end){// 递归终止条件该部分数组内容处理完了if(begend) return null;// 按照中间靠右为根节点int mid(end-beg1)/2beg;// 确定当前范围根节点TreeNode rootnew TreeNode(nums[mid]);// 递归root.leftfun(nums,beg,mid-1);root.rightfun(nums,mid1,end);// 返回当前树return root;}
} 运行结果