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;
    }
};
相关推荐
不知名的老吴19 分钟前
经典算法题之行星碰撞
数据结构·算法
丘山望岳25 分钟前
剑起霜华——平衡二叉树(AVL树 )精讲
开发语言·数据结构·c++
西安邮电大学25 分钟前
有关数组的经典算法题
java·后端·其他·算法·面试
学Linux的语莫31 分钟前
大模型微调数据集格式详解:Alpaca、ShareGPT、DPO、KTO、预训练数据怎么构建?
人工智能·算法·机器学习·微调格式
wayz1132 分钟前
Momentum:UO(终极震荡指标)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Boom_Shu39 分钟前
浅拷贝与深拷贝
开发语言·c++·算法
LuminousCPP1 小时前
数据结构 - 单链表第一篇:单链表基础操作
c语言·数据结构·经验分享·笔记·学习
触底反弹1 小时前
一文彻底搞懂 JavaScript 栈和队列(建议收藏)
javascript·算法·面试
WL学习笔记1 小时前
通讯录(顺序表实现)
c语言·数据结构·算法
JieE2121 小时前
树与二叉树--JS实例
javascript·数据结构