[Leetcode] 563. Binary Tree Tilt (C++)

마이구미·2021년 12월 8일
0

PS

목록 보기
59/69

문제

563. Binary Tree Tilt

코드

class Solution {
public:
    int answer = 0;
    int findTilt(TreeNode* root) {
        dfs(root);
        return answer;
    }
    
    int dfs(TreeNode* node){
        if (node == nullptr) return 0;
        
        int left = dfs(node->left);
        int right = dfs(node->right);
        
        answer += abs(left-right);
    
        return left+right+node->val;
    }
};

접근

현재 노드의 left, right 자식들의 각 합을 알 필요가 있기 때문에 bottom-up 방식으로 해결해야겠다고 생각했다. 따라서 현재 노드의 부모가 알 수 있도록 left+right+node->val을 반환 하였고 그 전에 tilt 값을 answer에 저장하였다.

profile
마이구미 마시쪙

0개의 댓글