题解:Find Largest Value in Each Tree Rowt

来源:互联网 发布:腾讯视频mac 编辑:程序博客网 时间:2024/05/18 00:53

题目: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;}


0 0
原创粉丝点击