AcWing 3766. 二叉树的带权路径长(2014年408真题)

72 阅读1分钟

时间复杂度 O(n)O(n),空间复杂度 O(n)O(n)[平均空间复杂度 O(logn)O(logn)]

class Solution {
    int sol(TreeNode *rt, int dep) {
        if(rt -> left == NULL and rt -> right == NULL) return rt -> val * dep;
        int ans = 0;
        if(rt -> left != NULL) ans += sol(rt -> left, dep + 1);
        if(rt -> right != NULL) ans += sol(rt -> right, dep + 1);
        return ans;
    }
public:
    int pathSum(TreeNode* root) {
        return sol(root, 0);
    }
};