遍历二叉树c语言代码
时间: 2024-11-04 12:08:53 浏览: 19
二叉树的建立
在C语言中,遍历二叉树主要有三种基本方法:前序遍历、中序遍历和后序遍历。这里我会分别给出递归版本的代码示例:
1. **前序遍历** (根节点 -> 左子树 -> 右子树):
```c
void preorderTraversal(struct TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 访问当前节点
preorderTraversal(root->left); // 递归左子树
preorderTraversal(root->right); // 递归右子树
}
}
```
2. **中序遍历** (左子树 -> 根节点 -> 右子树):
```c
void inorderTraversal(struct TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 递归左子树
printf("%d ", root->val); // 访问当前节点
inorderTraversal(root->right); // 递归右子树
}
}
```
3. **后序遍历** (左子树 -> 右子树 -> 根节点):
```c
void postorderTraversal(struct TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left); // 递归左子树
postorderTraversal(root->right); // 递归右子树
printf("%d ", root->val); // 访问当前节点
}
}
```
在这段代码中,`struct TreeNode* root` 是二叉树的根节点指针,`val` 存储节点值,`left` 和 `right` 分别指向左右子节点。
阅读全文