1,题目要求
You need to find the largest value in each row of a binary tree.
找到一颗二叉树中每一层的最大的值。
2,题目思路
对于这道题,直接利用递归的层次遍历的方法即可(不用队列)。即,在递归时传递参数level用来判断该节点所在的层。
3,程序源码
class Solution {
public:
vector<int> largestValues(TreeNode* root) {
DFS(root, 0);
return res;
}
public:
void DFS(TreeNode* node, int level)
{
if(node == nullptr) return;
if(res.size() == level) res.push_back(INT_MIN);
res[level] = max(res[level], node->val);
DFS(node->left, level+1);
DFS(node->right,level+1);
}
private:
vector<int> res;
};