C++编写程序,给出该二叉树的层序遍历代码。
时间: 2024-03-24 15:37:18 浏览: 15
好的,给出二叉树的层序遍历代码如下:
```c++
#include<iostream>
#include<queue>
using namespace std;
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
vector<int> levelOrder(TreeNode* root) {
vector<int> res;
if (!root) return res;
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
int size = q.size();
for (int i = 0; i < size; i++) {
TreeNode* node = q.front();
q.pop();
res.push_back(node->val);
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
}
return res;
}
};
```
这个程序使用了队列来实现层序遍历。我们首先将根节点加入队列中,然后不断地从队列中取出节点,并将其左右子节点加入队列中。这样可以保证我们按照层次顺序遍历二叉树。具体的实现细节可以看代码中的注释。