#include #include typedef struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; } TreeNode; TreeNode* createNode(int value) {// 创建新节点 TreeNode *newNode = (TreeNode*)malloc(sizeof(TreeNode)); newNode->val = value; newNode->left = NULL; newNode->right = NULL; return newNode; } void preorderTraversal(TreeNode *root) { if (root == NULL) return; printf("%d ", root->val); // 访问根节点 preorderTraversal(root->left); // 遍历左子树 preorderTraversal(root->right); // 遍历右子树 } void inorderTraversal(TreeNode *root) { if (root == NULL) return; inorderTraversal(root->left); // 遍历左子树 printf("%d ", root->val); // 访问根节点 inorderTraversal(root->right); // 遍历右子树 } void postorderTraversal(TreeNode *root) { if (root == NULL) return; postorderTraversal(root->left); // 遍历左子树 postorderTraversal(root->right); // 遍历右子树 printf("%d ", root->val); // 访问根节点 } 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("前序遍历: "); preorderTraversal(root); printf("\n"); printf("中序遍历: "); inorderTraversal(root); printf("\n"); printf("后序遍历: "); postorderTraversal(root); printf("\n"); return 0; }