学习时写的代码,存在很多不足,有时间会进行优化
#include <stdio.h>
#include <stdlib.h>
struct TreeNode{
int val ;
TreeNode* left ;
TreeNode* right ;
};
int CreatTree(TreeNode** root){
int val ;
scanf("%d" , &val ) ;
if(val<=0){
*root = NULL ;
return 0 ;
}
*root = (TreeNode*)malloc(sizeof(TreeNode)) ;
if(val>0){
(*root)->val = val ;
CreatTree(&(*root)->left) ;
CreatTree(&(*root)->right) ;
}
}
int PreOrderTree(TreeNode* root){
if(root == NULL) return 0 ;
printf("%d" , root->val) ;
PreOrderTree(root->left) ;
PreOrderTree(root->right) ;
}
int InOrderTree(TreeNode* root){
if(root == NULL) return 0 ;
InOrderTree(root->left) ;
printf("%d" ,root->val) ;
InOrderTree(root->right) ;
}
int PostOrderTree(TreeNode* root){
if(root == NULL) return 0 ;
PostOrderTree(root->left) ;
PostOrderTree(root->right) ;
printf("%d" , root->val) ;
}
int main(){
TreeNode* root ;
root = (TreeNode*)malloc(sizeof(TreeNode)) ;
CreatTree(&(root)) ;
printf("\n先序遍历为:") ;
PreOrderTree(root) ;
printf("\n中序遍历为:") ;
InOrderTree(root) ;
printf("\n尾序遍历为:") ;
PostOrderTree(root) ;
}