树的遍历有前序遍历、中序遍历和后序遍历三种,以下是它们的C语言代码实现:
前序遍历:
```
void preorderTraversal(struct TreeNode* root){
if(root == NULL){
return;
}
printf("%d ",root->val); // 先访问根节点
preorderTraversal(root->left); // 然后递归访问左子树
preorderTraversal(root->right); // 最后递归访问右子树
}
```
中序遍历:
```
void inorderTraversal(struct TreeNode* root){
if(root == NULL){
return;
}
inorderTraversal(root->left); // 先递归访问左子树
printf("%d ",root->val); // 然后访问根节点
inorderTraversal(root->right); // 最后递归访问右子树
}
```
后序遍历:
```
void postorderTraversal(struct TreeNode* root){
if(root == NULL){
return;
}
postorderTraversal(root->left); // 先递归访问左子树
postorderTraversal(root->right); // 然后递归访问右子树
printf("%d ",root->val); // 最后访问根节点
}
```
注意:以上代码中的 `struct TreeNode` 是指树的节点结构体,`val` 是节点的值,`left` 和 `right` 分别是指向左、右子节点的指针。