leetcode.5179. 将二叉搜索树变平衡

5179. 将二叉搜索树变平衡



图片说明



中序序列是有序的,可以二分建平衡树。


class Solution {
public:
    int n=0,a[10004];
    void dfs(TreeNode* root){
        if(root==NULL)return;
        dfs(root->left);
        a[++n]=root->val;
        dfs(root->right);
    }
    TreeNode* tree(int l,int r){
        if(l>r)return NULL;
        int mid=l+r>>1;
        TreeNode* node=new TreeNode(a[mid]);
        node->left=tree(l,mid-1);
        node->right=tree(mid+1,r);
        return node;
    }
    TreeNode* balanceBST(TreeNode* root) {
        if(root==NULL)return root;
        dfs(root);
        return tree(1,n);
    }
};
全部评论

相关推荐

Java转测开第一人:这种就是饼 把应届当廉价劳动力用完然后丢掉
你觉得今年秋招难吗
点赞 评论 收藏
分享
10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务