【题目描述】
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
【思路】
先求二叉树深度,然后按照先序遍历来打印
【代码】
void depth(vector<vector<int>>&vec, TreeNode* root, int h)
{
if(!root) return;
vec[h].push_back(root->val);
depth(vec,root->left, h+1);
depth(vec, root->right, h+1);
}
int depth(TreeNode* root)
{
if(!root) return 0;
return max(depth(root->left),depth(root->right))+1;
}
vector<vector<int> > Print(TreeNode* pRoot) {
int dep = depth(pRoot);
vector<vector<int> >res(dep, vector<int>());
depth(res,pRoot, 0);
return res;
}
225



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



