1161

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ailinyingai/article/details/102548460
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int maxLevelSum(TreeNode* root) {
        int res_sum = INT_MIN;
        int res_level = 1;
        queue<TreeNode*> que;
        que.push(root);
        int level = 1;
        while (!que.empty()) {
            int size = que.size();
            int level_sum = 0;
            while (size --) {
                TreeNode* cur = que.front(); que.pop();
                if (!cur) continue;
                level_sum += cur->val;
                que.push(cur->left);
                que.push(cur->right);
            }
            if (level_sum > res_sum) {
                res_sum = level_sum;
                res_level = level;
            }
            level ++;
        }
        return res_level;
    }
};

猜你喜欢

转载自blog.csdn.net/ailinyingai/article/details/102548460