LeetCode Weekly Contest 180
問題文
省略
省略
C++に変換後のコードはこちら
#define main dummy_main
{}
#undef main
#define TreeNode dummy_TreeNode
struct TreeNode {};
#undef TreeNode
int sz, arr[1d4];
TreeNode node[1d4]; int us;
void dfs(TreeNode *n){
if(n==NULL) return;
arr[sz++] = n->val;
dfs(n->left);
dfs(n->right);
}
TreeNode* construct(int a, int b){
if(a > b) return NULL;
int c = (a+b) / 2, now = us++;
node[now].val = arr[c];
node[now].left = construct(a,c-1);
node[now].right = construct(c+1,b);
return &node[now];
}
class Solution {
public:
TreeNode* balanceBST(TreeNode* root) {
sz = us = 0;
dfs(root);
sort(arr, arr+sz);
return construct(0, sz-1);
}
};
Current time: 2024年05月08日23時43分21秒
Last modified: 2020年03月30日02時54分02秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る
Logged in as: unknown user (not login)