c++ 给你二叉树的根节点 root ,层序遍历并用二维数组返回其节点值的
时间: 2023-10-24 13:30:19 浏览: 88
以下是可以实现该功能的 C++ 代码,其中使用了队列来辅助进行层序遍历:
```cpp
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if (!root) return res;
queue<TreeNode*> q{{root}};
while (!q.empty()) {
int n = q.size();
vector<int> level;
for (int i = 0; i < n; ++i) {
auto t = q.front(); q.pop();
level.push_back(t->val);
if (t->left) q.push(t->left);
if (t->right) q.push(t->right);
}
res.push_back(level);
}
return res;
}
```
其中,`TreeNode` 表示二叉树节点的结构体,具体实现如下:
```cpp
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
```
该函数返回一个二维数组,每个子数组表示一层节点的值。
阅读全文