LeetCode 515 Find Largest Value in Each Tree Row(二叉树层序遍历)
来源:互联网 发布:免费的经济数据库软件 编辑:程序博客网 时间:2024/06/06 04:38
You need to find the largest value in each row of a binary tree.
Example:
Input: 1 / \ 3 2 / \ \ 5 3 9 Output: [1, 3, 9]
题目大意:给出一棵二叉树,求出每一层的最大值。
解题思路:利用层序遍历求出每一层的元素,然后找到最大值即可。
代码如下:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> largestValues(TreeNode* root) { //largestValues(root, ans); largestValues(root, 0, ans); return ans; }private: queue<TreeNode*> que; vector<int> ans; //非递归版本 void largestValues(TreeNode* root, vector<int>& ans) { if(root == nullptr) return ; int cur = 0; TreeNode* tmp; que.push(root); while(cur < que.size()){ int last = que.size(); int max = INT_MIN; while(cur++ < last){ tmp = que.front(); que.pop(); if(max < tmp->val) max = tmp->val; if(tmp->left) que.push(tmp->left); if(tmp->right) que.push(tmp->right); } cur = 0; ans.push_back(max); } } //递归版本 void largestValues(TreeNode* root, int depth, vector<int>& ans) { if(root == nullptr) return; if(ans.size() == depth)ans.push_back(INT_MIN); ans[depth] = (max(root->val, ans[depth])); largestValues(root->left, depth + 1, ans); largestValues(root->right, depth + 1, ans); }};
阅读全文
0 0
- LeetCode 515 Find Largest Value in Each Tree Row(二叉树层序遍历)
- [leetcode 515]Find Largest Value in Each Tree Row
- LeetCode #515: Find Largest Value in Each Tree Row
- leetcode 515 Find Largest Value in Each Tree Row C++
- Leetcode 515 Find Largest Value in Each Tree Row
- LeetCode#515 Find Largest Value in Each Tree Row (week15)
- LeetCode-515. Find Largest Value in Each Tree Row (JAVA)(二叉树每行的最大值)
- LeetCode 515. Find Largest Value in Each Tree Row
- LeetCode OJ 515. Find Largest Value in Each Tree Row
- 【LEETCODE】 Find Largest Value in Each Tree Row javascript实现
- LeetCode笔记:515. Find Largest Value in Each Tree Row
- [leetcode] 515. Find Largest Value in Each Tree Row
- 【LeetCode】515. Find Largest Value in Each Tree Row
- LeetCode;515. Find Largest Value in Each Tree Row
- leetcode 515. Find Largest Value in Each Tree Row
- leetcode 515. Find Largest Value in Each Tree Row
- 【LeetCode】Find Largest Value in Each Tree Row 解题报告
- leetcode-515. Find Largest Value in Each Tree Row
- 从1到n个自然数中,各个数位包含1的个数
- LintCode 代码 翻转数
- 深度学习笔记(一)
- 一个简单的由老师指导实现的模拟spring的ioc的di注解以及注解容器(AnnotationConfigApplicationContext)代码
- UVA 548
- LeetCode 515 Find Largest Value in Each Tree Row(二叉树层序遍历)
- set hashSet 去重
- imx6系列--引脚复用及特性设置(设备树)
- HDU 4549 M斐波那契数列(矩阵快速幂+费马小定理)
- Codeforces 800C. Vulnerable Kerbals 【DAG图最长路】
- C语言数据结构-线性表-数组
- 回文词_KEY
- 数据类型
- 二分算法