# Tree Traversals

There are multiple ways to in which you can traverse a tree. In this article we will see these traversals in detail. If you are new to trees then I would recommend that you pay close attention to this article because you will be solving almost all the problems on tree by using one or more of these traversals.

Here we will discuss the recursive approach, we will have separate posts for Iterative or Non-recursive approach.

Traversals: In every traversal we visit the tree in certain order. lets  discuss them in detail.

• Visit the root.
• Visit the left-subtree.
• Visit the right-subtree.

• Visit the left-subtree.
• Visit the root.
• Visit the right-subtree.

• Visit the right-subtree.
• Visit the left-subtree.
• Visit the root.

Code:

 public class TreeTraversals { public void inorderRecursive(Node root) { if (root != null) { inorderRecursive(root.left); System.out.print(root.data + " "); inorderRecursive(root.right); } } public void postOrderRecursive(Node root) { if (root != null) { postOrderRecursive(root.right); postOrderRecursive(root.left); System.out.print(root.data + " "); } } public void preOrderRecursive(Node root) { if (root != null) { System.out.print(root.data + " "); preOrderRecursive(root.left); preOrderRecursive(root.right); } } public static void main(String[] args) { Node root = new Node(1); root.left = new Node(2); root.right = new Node(3); root.left.left = new Node(4); root.left.right = new Node(5); root.right.left = new Node(6); root.right.right = new Node(7); TreeTraversals i = new TreeTraversals(); System.out.println("Inorder Traversal:"); i.inorderRecursive(root); System.out.println("\nPreorder Traversal:"); i.preOrderRecursive(root); System.out.println("\nPostorder Traversal:"); i.postOrderRecursive(root); } } class Node { int data; Node left; Node right; public Node(int data) { this.data = data; } }

view raw
TreeTraversals.java
hosted with ❤ by GitHub

```Output:

Inorder Traversal:4 2 5 1 6 3 7
Preorder Traversal:1 2 4 5 3 6 7
Postorder Traversal:7 6 3 5 4 2 1
```