leetcode 1161(BFS)

1161: 最大层内元素和

思路:本题需要计算每一层的节点值之和,适合用 BFS

二叉树结构:

复制代码
Definition for a binary tree node.
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

维护两个信息:最大层和 maxSum,以及对应的层号 ans。如果当前层的和大于 maxSum,那么更新 maxSum 和 ans。

复制代码
auto tmp=q;
复制代码
class Solution {
public:
    int maxLevelSum(TreeNode* root) {
        int max_sum=INT_MIN;
        int ans=0;
        vector<TreeNode*> q={root}; //BFS
        for(int level=1;!q.empty();level++){
            auto tmp=q;
            q.clear();
            int s=0;

            for(auto node:tmp){
                s+=node->val;
                if(node->left) q.push_back(node->left);
                if(node->right) q.push_back(node->right);
            }
            if(s> max_sum){
                max_sum=s;
                ans=level;
            }
        }

        return ans;
    }
};
相关推荐
北顾笙9801 分钟前
测开准备-day03数据结构力扣
数据结构
m0_733612215 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
仰泳的熊猫7 分钟前
题目2571:蓝桥杯2020年第十一届省赛真题-回文日期
数据结构·c++·算法·蓝桥杯
我喜欢就喜欢11 分钟前
基于离散余弦变换的感知哈希算法:原理、实现与工程实践
算法·哈希算法
尽兴-14 分钟前
Redis7 底层数据结构解析
数据结构·数据库·缓存·redis7
2301_8073671934 分钟前
C++中的模板方法模式
开发语言·c++·算法
PhotonixBay1 小时前
共聚焦显微镜的结构组成与应用
人工智能·算法·机器学习
逆境不可逃1 小时前
LeetCode 热题 100 之 33. 搜索旋转排序数组 153. 寻找旋转排序数组中的最小值 4. 寻找两个正序数组的中位数
java·开发语言·数据结构·算法·leetcode·职场和发展
tankeven1 小时前
HJ137 乘之
c++·算法
add45a2 小时前
C++中的观察者模式
开发语言·c++·算法