如何用C语言实现二叉树的前序、中序和后序遍历算法?
时间: 2025-02-17 13:21:41 浏览: 37
在C语言中,我们可以使用递归或栈来实现二叉树的前序、中序和后序遍历。这里给出基本的前序、中序和后序遍历的递归实现:
### 前序遍历 (Preorder Traversal)
```c
void preorderTraversal(struct TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 先访问根节点
preorderTraversal(root->left); // 再访问左子树
preorderTraversal(root->right); // 最后访问右子树
}
}
```
### 中序遍历 (Inorder Traversal)
```c
void inorderTraversal(struct TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 先访问左子树
printf("%d ", root->val); // 然后访问根节点
inorderTraversal(root->right); // 最后访问右子树
}
}
```
### 后序遍历 (Postorder Traversal)
```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`。
阅读全文
相关推荐



















