Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和

Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和

2583.二叉树中的第K大层和

2583. 二叉树中的第 K 大层和 - 力扣(LeetCode)

思路:

把每层的结果都放到一个vector数组里面,然后排序这个vector数组,返回第K大的元素即可

完整代码:

cpp 复制代码
class Solution {
public:
    long long kthLargestLevelSum(TreeNode* root, int k) {
        vector<long long> res;
        queue<TreeNode *> q;
        if(root==nullptr)
            return 0;
        q.push(root);
        while(!q.empty())
        {
            int size=q.size();
            long long path=0;
            for(int i=0;i<size;i++)
            {
                TreeNode *t=q.front();
                q.pop();
                path+=t->val;
                if(t->left)
                    q.push(t->left);
                if(t->right)
                    q.push(t->right);
            }
            res.push_back(path);
        }
        sort(res.begin(),res.end());
        if(res.size()>=k)
            return res[res.size()-k];
        return -1;
    }
};
相关推荐
Zephyrtoria1 小时前
区间合并:区间合并问题
java·开发语言·数据结构·算法
柏箱3 小时前
容器里有10升油,现在只有两个分别能装3升和7升油的瓶子,需要将10 升油等分成2 个5 升油。程序输出分油次数最少的详细操作过程。
算法·bfs
Aderversa4 小时前
C++开源协程库async_simple有栈协程源码分析
c++·协程
uyeonashi4 小时前
【QT】窗口详解
开发语言·c++·qt·学习
Hello eveybody5 小时前
C++介绍整数二分与实数二分
开发语言·数据结构·c++·算法
空白木各5 小时前
evo工具
c++
编码小笨猪5 小时前
浅谈Linux中一次系统调用的执行过程
linux·服务器·c++
囚生CY5 小时前
【学习笔记】Langchain基础(二)
笔记·学习·langchain
Jay_5156 小时前
C语言环形数组(循环队列)详解:原理、实现与应用
c语言·学习·嵌入式·环形数组
Jay Kay6 小时前
TensorFlow Serving学习笔记2: 模型服务
学习·tensorflow