思路:
变量level标识节点的深度(假设从0开始),vector<int> res存放结果,Fun函数遍历整个树,当遍历到第i层时,如果
res的长度小于i+1,则将该节点的数据加入res中,如果res长度大于等于i+1,则将该节点的数据与res[i]进行比较,如果
大于res[i],则替换,这样保证res[i]最终存放的是i层最大的数
void Fun(int level, vector<int>& res, TreeNode* node)
{
if (node==NULL)
return;
if (res.size()<level+1)
res.push_back(node->val);
else if (res[level]<node->val)
res[level]=node->val;
Fun(level+1,res,node->left);
Fun(level+1,res,node->right);
}
vector<int> largestValues(TreeNode* root) {
vector<int> res;
Fun(0,res,root);
return res;
}