question:
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
提示:
0 <= 二叉树的结点数 <= 1500
solution:
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型vector<vector<>>
*/
void f(TreeNode* root, int level, vector<vector<int>>& res){
if (!root) return;
if(level >= res.size())
res.push_back(vector<int>{});//new vetotr
res[level].push_back(root->val);
f(root->left, level + 1, res);
f(root->right, level + 1, res);
}
vector<vector<int> > levelOrder(TreeNode* root) {
// write code here
vector<vector<int>>res;
int level = 0;
f(root,level,res);
return res;
}
};