1.自上而下层序遍历输出,题目描述参见力扣102
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(): val(0),left(nullptr), right(nullptr) {}
TreeNode(int data) : val(data), left(nullptr), right(nullptr) {}
};
vector<vector<int>> printTree(TreeNode* root) {
if (root == nullptr) {
return{};
}
vector<vector<int>> res;
queue<TreeNode*> tool;
tool.emplace(root);
while (!tool.empty()) {
vector<int> tmp;
int n = tool.size();
while (n--) {
tmp.emplace_back(tool.front()->val);
if (tool.front()->left != nullptr) {
tool.emplace(tool.front()->left);
}
if (tool.front()->right != nullptr) {
tool.emplace(tool.front()->right);
}
tool.pop();
}
res.emplace_back(tmp);
}
return res;
}
int main() {
TreeNode* root = new TreeNode(1);
TreeNod