Mark As Completed Discussion

Traversal

Traversal is the process of visiting and examining all nodes in a binary tree in a specific order. There are three commonly used traversal methods: inorder traversal, preorder traversal, and postorder traversal.

  • Inorder Traversal: In inorder traversal, the left subtree is visited first, then the root node, and finally the right subtree. The inorder traversal visits the nodes in ascending order of their keys.

  • Preorder Traversal: In preorder traversal, the root node is visited first, followed by the left subtree, and then the right subtree.

  • Postorder Traversal: In postorder traversal, the left subtree is visited first, then the right subtree, and finally the root node.

Here is an example of performing these traversal methods on a binary tree in Java:

TEXT/X-JAVA
1import java.util.LinkedList;
2
3public class TraversalExample {
4
5    static class TreeNode {
6        int val;
7        TreeNode left;
8        TreeNode right;
9
10        TreeNode(int val) {
11            this.val = val;
12        }
13    }
14
15    public static void main(String[] args) {
16        // Create a binary tree
17        TreeNode root = new TreeNode(1);
18        root.left = new TreeNode(2);
19        root.right = new TreeNode(3);
20        root.left.left = new TreeNode(4);
21        root.left.right = new TreeNode(5);
22
23        // Perform inorder traversal
24        System.out.println("Inorder Traversal:");
25        inorderTraversal(root);
26
27        // Perform preorder traversal
28        System.out.println("Preorder Traversal:");
29        preorderTraversal(root);
30
31        // Perform postorder traversal
32        System.out.println("Postorder Traversal:");
33        postorderTraversal(root);
34    }
35
36    // Inorder Traversal
37    static void inorderTraversal(TreeNode node) {
38        if (node == null) {
39            return;
40        }
41
42        inorderTraversal(node.left);
43        System.out.print(node.val + " ");
44        inorderTraversal(node.right);
45    }
46
47    // Preorder Traversal
48    static void preorderTraversal(TreeNode node) {
49        if (node == null) {
50            return;
51        }
52
53        System.out.print(node.val + " ");
54        preorderTraversal(node.left);
55        preorderTraversal(node.right);
56    }
57
58    // Postorder Traversal
59    static void postorderTraversal(TreeNode node) {
60        if (node == null) {
61            return;
62        }
63
64        postorderTraversal(node.left);
65        postorderTraversal(node.right);
66        System.out.print(node.val + " ");
67    }
68}
JAVA
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment