Recursive Tree Traversals
void preorderTraversal(struct Node *ptr) {
if (ptr != NULL) {
printf("%d\t", ptr -> data);
preorderTraversal(ptr -> left);
preorderTraversal(ptr -> right);
}
}
void inorderTraversal(struct Node *ptr) {
if (ptr != NULL) {
inorderTraversal(ptr -> left);
printf("%d\t", ptr -> data);
inorderTraversal(ptr -> right);
}
}
void postorderTraversal(struct Node *ptr) {
if (ptr != NULL) {
postorderTraversal(ptr -> left);
postorderTraversal(ptr -> right);
printf("%d\t", ptr -> data);
}
}
The time complexity of all 3 traversal methods in O(n).
Contributed by Nitin Ranganath