本文主要是介绍515. Find Largest Value in Each Tree Row 在每个树行中找最大值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/description/
思路:
和637. Average of Levels in Binary Tree(https://www.jianshu.com/p/814d871c5f6d)的思路基本相同.即层遍历二叉树,然后在每层中分别找最大的.
vector<int> largestValues(TreeNode* root) {queue<TreeNode*> q; //结点队列vector<int> res; //输出if (!root) return res; //若root为空,直接返回q.push(root);while(!q.empty()) {int size = q.size(); //记录此时刻队列大小(层大小)int max = q.front()->val; //先假设最大值结点是队列头(很重要,不能一上来就假设max初始为0这种不严谨的写法)for (int i = 0; i < size; i++) { //遍历该层,找最大值TreeNode* tmp = q.front();q.pop();if (tmp->val > max) max = tmp->val;if (tmp->left) q.push(tmp->left);if (tmp->right) q.push(tmp->right);}res.push_back(max);}return res;
}
这篇关于515. Find Largest Value in Each Tree Row 在每个树行中找最大值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!