코테준비 - Recover Binary Search Tree

정상화·2023년 2월 26일

LeetCode

목록 보기
96/222

Recover Binary Search Tree

class Solution {
private:
    TreeNode* prev;
public:
    void recoverTree(TreeNode* root) {
        prev = new TreeNode(INT32_MIN);
        inOrderLeft(root);
        prev = new TreeNode(INT32_MAX);
        inOrderRight(root);
    }

    void inOrderLeft(TreeNode* root){
        if (root->left != nullptr) {
            inOrderLeft(root->left);
        }
        if (prev->val > root->val) {
            swap(prev->val, root->val);
        }
        prev = root;
        if (root->right != nullptr) {
            inOrderLeft(root->right);
        }
    }
    void inOrderRight(TreeNode* root){
        if (root->right != nullptr) {
            inOrderRight(root->right);
        }
        if (prev->val < root->val) {
            swap(prev->val, root->val);
        }
        prev = root;
        if (root->left != nullptr) {
            inOrderRight(root->left);
        }
    }
};
profile
백엔드 희망

0개의 댓글