课程设计代做网站推荐,领优惠券的小网站怎么做,爱网站最新发布址,wordpress柒零贰给你一个整数数组 nums #xff0c;其中元素已经按升序排列#xff0c;请你将其转换为一棵 平衡二叉搜索树。
示例 1#xff1a; 输入#xff1a;nums [-10,-3,0,5,9]
输出#xff1a;[0,-3,9,-10,null,5]
解释#xff1a;[0,-10,5,null,-3,null,9] 也将被视为正确答案… 给你一个整数数组 nums 其中元素已经按升序排列请你将其转换为一棵 平衡二叉搜索树。
示例 1 输入nums [-10,-3,0,5,9]
输出[0,-3,9,-10,null,5]
解释[0,-10,5,null,-3,null,9] 也将被视为正确答案
方法中序遍历总是选择中间位置左边的数字作为根节点
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
//自己定义的build函数要放在前面
struct TreeNode* build(int* nums,int left,int right){if(leftright){return NULL;}int mid(leftright)/2;
//创建新节点struct TreeNode* root (struct TreeNode*)malloc(sizeof(struct TreeNode));root-valnums[mid];root-leftbuild(nums,left,mid-1);root-rightbuild(nums,mid1,right);return root;
}struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {return build(nums,0,numsSize-1);
}