Hello there.
In this article, we will be traversing a binary tree, and we also print the data stored in those node.
In the inorder traversal, we print the left child – root – right child.
Here is simple recursive algorithm to do that.
- go to left child – print the left child
- print the root
- go to right child – print the right child
Recursion can be a little difficult to understand. But, that’s ok, no one understands that in the beginning.
And, we also have to add a termination case to end the recursion. Because, we do not want to blow out the stack
The recursion terminator.
if (head == null) return ;
Inorder Traversal :-
//print head between left and right childs public static void inorder(BinaryTreeNode head) { if (head == null) return ; inorder(head.left); System.out.println(head.name); inorder(head.right); }
Let us write a test code to use the above function.
public class BinaryTreeTraversal { public static void main(String ... args) { BinaryTreeNode head = CreateBinaryTree.createCompleteBinaryTree('A', 'B', 'Z', 'E', 'P', 'Q'); System.out.println("--InOrder--"); inorder(head); } }
We are using BinaryTreeNode as a node for binary tree and we are using utility function -which creates a binary tree is defined in this article – here.
The output of above code.
--InOrder-- E B P A Q Z
So, we just traversed the binary tree in inorder.
thanks for reading.. bye for now.. 🙂