문제

풀이

class Solution {
public:
    int sumRootToLeaf(TreeNode* root) {
        return solve(root, 0);
    }

    int solve(TreeNode* root, int curNum) {
        if (root == nullptr)
        {
            return 0;
        }

        curNum <<= 1;
        curNum |= root->val;

        if (root->left == nullptr && root->right == nullptr)
        {
            return curNum;
        }

        return solve(root->left, curNum) + solve(root->right, curNum);
    }
};

Daily Question이어서 풀었다. 간단한 트리 순회 문제이다. 특별히 주의해야하는 것도 없어서 Easy로 매겨진 것 같은데, 비트 연산이 그렇게 간단하지 않으니(?) Normal로 올리라는 의견도 좀 보였다.

배운 점과 후기

LeetCode 프리미엄을 결제했다. 이제부터 LeetCode 위주로 풀 예정이다.

댓글남기기