AcWing 44. 分行从上往下打印二叉树
原题链接
中等
作者:
uixva
,
2019-10-31 06:16:54
,
所有人可见
,
阅读 747
// 使用pair来记录每一个节点的层数
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<vector<int>> printFromTopToBottom(TreeNode* root) {
vector<vector<int>> res;
if (!root) return res;
queue<pair<int, TreeNode*>> que;
que.push({0, root});
while (!que.empty()) {
auto x = que.front();
que.pop();
TreeNode* n = x.second;
int c = x.first;
if (c == res.size()) res.push_back(vector<int>{n->val});
else res[c].push_back(n->val);
if (n->left) que.push({c+1, n->left});
if (n->right) que.push({c+1, n->right});
}
return res;
}
};