LeetCode_99

Yesl·2022년 9월 25일

LeetCode

목록 보기
2/5
class Solution {
    
    TreeNode *prev, *first, *second;
    
public:
    void inorder (TreeNode* root) {
        
        if (!root)
            return;
        
        inorder (root -> left);
        
        if (prev and root -> val <= prev -> val) {
            
            if (!first) {
                first = prev;
                second = root;
            }
            
            else {
                second = root;
            }
        }
        
        prev = root;
        
        inorder (root -> right);
    }
    
    void recoverTree (TreeNode* root) {
        prev = first = second = NULL;
        inorder (root);
        swap (first -> val, second -> val);
    }
};

처음에는 컴파일 에러가 떴지만 해결했다.

성공!

profile
Studying for "Good Health & Well-Being"...

0개의 댓글