注释void levelOrderTraversal(TreeNode* root) { if (root == NULL) { return; } queue<TreeNode*> q; q.push(root); while (!q.empty()) { TreeNode* node = q.front(); q.pop(); cout << node->val << " "; if (node->left) { q.push(node->left); } if (node->right) { q.push(node->right); } } }
时间: 2024-03-10 08:47:37 浏览: 142
以下是对 `void levelOrderTraversal(TreeNode* root)` 函数的注释:
```
/**
* 对给定的二叉树进行层序遍历,并将遍历结果输出到标准输出流中
* @param root 二叉树的根节点指针
*/
void levelOrderTraversal(TreeNode* root) {
if (root == nullptr) { // 如果根节点为空,直接返回
return;
}
queue<TreeNode*> q; // 创建一个队列,用于存储待遍历的节点
q.push(root); // 将根节点加入队列中
while (!q.empty()) { // 循环遍历队列中的节点
TreeNode* node = q.front(); // 取出队列中的首节点
q.pop(); // 将首节点出队
cout << node->val << " "; // 输出节点值
if (node->left) { // 如果该节点有左子节点,将其加入队列中
q.push(node->left);
}
if (node->right) { // 如果该节点有右子节点,将其加入队列中
q.push(node->right);
}
}
}
```
该函数使用广度优先搜索的思想,使用队列来存储待遍历的节点,每次取出队列中的首节点进行遍历,并将其左右子节点加入队列中,直到队列为空为止。由于使用了队列来存储节点,因此实现了按层遍历的效果。
阅读全文