C语言遍历二叉树完整代码
时间: 2024-11-08 09:12:17 浏览: 29
在C语言中,遍历二叉树通常有三种基本方式:前序遍历、中序遍历和后序遍历。这里我会给出一个使用递归实现的简单示例,假设我们有一个二叉树节点结构如下:
```c
typedef struct TreeNode {
int val; // 节点值
struct TreeNode *left; // 左子节点指针
struct TreeNode *right; // 右子节点指针
} TreeNode;
```
1. **前序遍历(根-左-右)**:
```c
void preorderTraversal(TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 访问根节点
preorderTraversal(root->left); // 遍历左子树
preorderTraversal(root->right); // 遍历右子树
}
}
```
2. **中序遍历(左-根-右)**:
```c
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 遍历左子树
printf("%d ", root->val); // 访问根节点
inorderTraversal(root->right); // 遍历右子树
}
}
```
3. **后序遍历(左-右-根)**:
```c
void postorderTraversal(TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left); // 遍历左子树
postorderTraversal(root->right); // 遍历右子树
printf("%d ", root->val); // 访问根节点
}
}
```
记得在实际应用中处理空指针,以上代码仅作为基础演示。如果你需要非递归的方式(如迭代),可以考虑使用栈。
阅读全文