算法1
BFS
每次先加入一个nullptr;
然后每次遇到nullptr的时候 判断que的大小;如果大小大于0,那么
再加入一个nullptr
C++ 代码
class Solution {
public:
vector<vector<int>> printFromTopToBottom(TreeNode* root) {
queue<TreeNode*> que;
que.push(root);
que.push(nullptr);
vector<vector<int>> out;
vector<int> ans;
if (!root) {
return out;
}
while (!que.empty()) {
TreeNode* top = que.front();
que.pop();
if (top == nullptr) {
if (que.size() > 0) {
que.push(nullptr);
}
out.push_back(ans);
ans.clear();
}
else {
ans.push_back(top->val);
if (top->left) que.push(top->left);
if (top->right) que.push(top->right);
}
}
return out;
}
};