题目:Find Largest Value in Each Tree Row
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]不断遍历并且更新数组即可,使用的是递归的
#include <iostream>
#include <vector>
using namespace std;
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void search(TreeNode* root, vector<int>& result, int d)
{
if(result.size() < d + 1)
result.push_back(root->val);
else {
if (result[d] < root->val)
result[d] = root->val;
search(root->left, result, d + 1);
search(root->right, result, d + 1);
}
}
vector<int> largestValues(TreeNode* root) {
vector<int> result;
result.push_back(root->val);
search(root->left, result, 1);
search(root->right, result, 1);
return result;
}
本文介绍了一种算法,用于查找二叉树每一层的最大值。通过递归方式遍历树的各层节点,并记录每层的最大值。
417

被折叠的 条评论
为什么被折叠?



