二叉树层次便利c语言代码
时间: 2023-07-29 15:12:17 浏览: 104
层次遍历二叉树C语言实现
4星 · 用户满意度95%
二叉树的层次遍历使用队列来实现,以下是 C 语言代码:
```c
// 二叉树结构体
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
// 层次遍历
void levelorderTraversal(struct TreeNode* root) {
if (root == NULL) {
return;
}
struct TreeNode* queue[1000]; // 定义队列
int front = 0, rear = 0;
queue[rear++] = root; // 根节点入队
while (front < rear) { // 队列不为空时循环
struct TreeNode* node = queue[front++]; // 队头元素出队
printf("%d ", node->val); // 访问队头元素的值
if (node->left != NULL) {
queue[rear++] = node->left; // 左子树入队
}
if (node->right != NULL) {
queue[rear++] = node->right; // 右子树入队
}
}
}
```
以上代码中,`struct TreeNode` 是二叉树的结构体,包含了一个值 `val` 和左右子树的指针 `left` 和 `right`。`levelorderTraversal` 是层次遍历的函数,其中使用了队列实现。在遍历过程中,根节点首先入队,然后每次出队一个节点时,将其左右子节点入队。这样可以保证每一层的节点按顺序遍历。
阅读全文