c语言树的后序遍历代码
时间: 2024-12-12 11:30:30 浏览: 2
在C语言中,我们可以使用递归的方式来实现二叉树的后序遍历。后序遍历的顺序是先遍历左子树,再遍历右子树,最后访问根节点。下面是一个简单的二叉树后序遍历的示例代码:
```c
#include <stdio.h>
// 定义二叉树结构体
typedef struct TreeNode {
int val; // 节点值
struct TreeNode *left; // 左子节点指针
struct TreeNode *right; // 右子节点指针
} TreeNode;
// 后序遍历函数
void postorderTraversal(TreeNode* root) {
if (root == NULL) return;
postorderTraversal(root->left); // 先遍历左子树
postorderTraversal(root->right); // 再遍历右子树
printf("%d ", root->val); // 最后访问根节点
}
// 创建一个新的二叉树节点
TreeNode* createNode(int val) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->val = val;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
int main() {
// 为了演示,假设我们已经有一个二叉树实例,这里仅提供创建基本节点的例子
TreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
printf("后序遍历结果: ");
postorderTraversal(root);
printf("\n");
return 0;
}
```
阅读全文