048. 使用递归进行树的遍历
048. 使用递归进行树的遍历
在C语言中,递归是实现树遍历的常用方法。树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。这些遍历方式通过递归调用实现,能够有效地访问树中的每个节点。
树的结构定义
首先,我们需要定义一个二叉树节点的结构。假设每个节点包含一个整数值和两个指向其左右子节点的指针。
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构
typedef struct TreeNode {
int data; // 节点数据
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
创建树的辅助函数
为了方便测试,我们可以定义一个函数来创建一个简单的二叉树。
// 创建一个新节点
TreeNode* createNode(int data) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
if (newNode == NULL) {
printf("内存分配失败!\n");
exit(1);
}
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 创建一个简单的二叉树
TreeNode* createTree() {
TreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3