湖北网站排名优化app拉新推广代理
湖北网站排名优化,app拉新推广代理,易语言做网站客户端,外贸管理网站模板题目描述
给你一个整数数组 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] 也将被视为正确答案示例 2输入nums [1,3]输出[3,1]解释[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。提示1nums.length1041 nums.length 10^41nums.length104−104nums[i]104-10^4 nums[i] 10^4−104nums[i]104nums 按 严格递增 顺序排列思路1 二叉搜索树对其进行中序遍历的结果就是升序的。2 我们每次获取中间结点设置左子树为(lmid-1)右子树为(mid, r)递归调用。代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */classSolution{public:TreeNode*sortedArrayToBST(vectorintnums){returnin_order(nums,0,nums.size()-1);}TreeNode*in_order(vectorintnums,intl,intr){if(lr)returnnullptr;intmidlr11;TreeNode*rootnewTreeNode(nums[mid]);root-leftin_order(nums,l,mid-1);root-rightin_order(nums,mid1,r);returnroot;}};