面试题 04.02.最小高度数

​​题目来源:

        leetcode题目,网址:面试题 04.02. 最小高度树 - 力扣(LeetCode)

解题思路:

       以中间节点为根节点建立一颗二叉查找树即可。

解题代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* sortedArrayToBST(vector& nums) {
        if(nums.size()==0){
            return nullptr;
        }
        int mid=nums.size()/2;
        TreeNode* root=new TreeNode(nums[mid]);
        vector left;
        vector right;
        left.assign(nums.begin(),nums.begin()+mid);
        root->left=sortedArrayToBST(left);
        right.assign(nums.begin()+mid+1,nums.end());
        root->right=sortedArrayToBST(right);
        return root;
    }
};
 
  

总结:

        官方题解也是一样的思路。不过他给出了三种解答,分别选择中间节点左边、右边、任意元素作为根节点。


你可能感兴趣的:(#,C++,LeetCode,C++)