题解:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/er-cha-shu-de-ceng-xu-bian-li-by-leetcode-solution/
复杂度分析
记树上所有节点的个数为 n。
时间复杂度:每个点进队出队各一次,故渐进时间复杂度为 O(n)
空间复杂度:队列中元素的个数不超过 n个,故渐进空间复杂度为 O(n)
/**
* * 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> levelOrder(TreeNode* root) {
vector> result;
if(root == nullptr) {
return result;
}
queue que;
que.push(root);
while(!que.empty()) {
queue temp_que;
vector temp_result;
while(!que.empty()) {
TreeNode* node = que.front();
que.pop();
temp_result.push_back(node->val);
if(node->left) temp_que.push(node->left);
if(node->right) temp_que.push(node->right);
}
result.push_back(std::move(temp_result));
swap(que, temp_que);
}
return result;
}
};