• 【LeetCode】1161.最大层内元素和


    题目

    给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。
    请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个。

    示例 1:

    输入:root = [1,7,0,7,-8,null,null]
    输出:2
    解释:
    第 1 层各元素之和为 1,
    第 2 层各元素之和为 7 + 0 = 7,
    第 3 层各元素之和为 7 + -8 = -1,
    所以我们返回第 2 层的层号,它的层内元素之和最大。

    示例 2:

    输入:root = [989,null,10250,98693,-89388,null,null,null,-32127]
    输出:2

    提示:

    树中的节点数在 [1, 104]范围内
    -105 <= Node.val <= 105

    题解

    使用广度优先遍历
    遍历一层判断一次

    /**
     * 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) {}
     * };
     */
    class Solution {
    public:
        int maxLevelSum(TreeNode* root) {
            int index = 1;
            int maxSum = root->val;
            queue<TreeNode*> mytree;
            mytree.push(root);
    
            for(int i=1;!mytree.empty();i++)
            {
                queue<TreeNode*> tmp;
                int tmpSum = 0;
                while(!mytree.empty())
                {
                    TreeNode* node = mytree.front();
                    mytree.pop();
                    tmpSum += node->val;
                    if(node->left)
                        tmp.push(node->left);
                    if(node->right)
                        tmp.push(node->right);
                }
                
                if(tmpSum>maxSum)
                {
                    index = i;
                    maxSum = tmpSum;
                }
                mytree.swap(tmp);
            }
            return index;
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    深度优先遍历,使用递归

    /**
     * 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) {}
     * };
     */
    class Solution {
    public:
        vector<int> mySum;
        void dfs(TreeNode* root,int level)
        {
            if(mySum.size() == level)
                mySum.push_back(0);
            mySum[level]+=root->val;
    
            if(root->left)
                dfs(root->left,level+1);
            if(root->right)
                dfs(root->right,level+1);
        }
        int maxLevelSum(TreeNode* root) {
            dfs(root,0);
            // int result = 0;
            // int max=root->val;
            // for(int i=0;i
            // {
            //     if(max
            //     {
            //         max = mySum[i];
            //         result = i;
            //     }
            // }
            return max_element(mySum.begin(),mySum.end()) - mySum.begin()+1; 
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
  • 相关阅读:
    定时器的类型
    【C++基础】内存泄漏检测——Valgrind、VLD、RTC
    Linux 中 Find 命令的高级用法
    Redis:哨兵
    物联网技术融合:ZETA联盟会员推出支持ZETA通信协议的BLE蓝牙网关
    Gin 中使用日志
    js基础知识整理之 —— 闭包
    总结:从实模式到保护模式的流程和相关寄存器,相关数据结构之间的联系
    Java基础面试题(2022版)
    方程组解的情况与向量组相关性转化【线代碎碎念】
  • 原文地址:https://blog.csdn.net/qq_45972928/article/details/126081840