#include struct Tree { int val; struct Tree * left; struct Tree * right; }; void free_tree_1(struct Tree * t) { if(t == NULL) return; free(t); } void free_tree_2(struct Tree * t) { if(t == NULL) return; free(t); free_tree_2(t->left); free_tree_2(t->right); } void free_tree_3(struct Tree * t) { if(t == NULL) return; free_tree_3(t->left); free_tree_3(t->right); free(t); }