class Node { public int val; public Node left, right; public Node(int v) { val = v; left = right = null; } } // Tree structure: // 2 // / \ // 1 3 Node root = new Node(2); root.left = new Node(1); root.right = new Node(3); void Inorder(Node node) { if (node == null) return; Inorder(node.left); Console.Write(node.val + " "); Inorder(node.right); } Inorder(root);
Inorder traversal means visit left child, then root, then right child.
For the tree: 2 with left child 1 and right child 3, the order is 1, 2, 3.
class Node { public int val; public Node left, right; public Node(int v) { val = v; left = right = null; } } // Tree structure: // 5 // / // 3 // \ // 4 Node root = new Node(5); root.left = new Node(3); root.left.right = new Node(4); void Inorder(Node node) { if (node == null) return; Inorder(node.left); Console.Write(node.val + " "); Inorder(node.right); } Inorder(root);
Inorder traversal visits left subtree, then root, then right subtree.
For this tree, left subtree is 3 with right child 4, so order is 3, 4, then root 5.
class Node { public int val; public Node left, right; public Node(int v) { val = v; left = right = null; } } void Inorder(Node node) { if (node == null) return; Inorder(node.right); Console.Write(node.val + " "); Inorder(node.left); } Node root = new Node(1); root.left = new Node(2); root.right = new Node(3); Inorder(root);
The code visits right subtree first, then root, then left subtree.
This is a reversed inorder traversal, so output is 3 1 2.
Inorder traversal visits every node in the tree exactly once, so for 7 nodes, it visits 7 nodes.
class Node { public int val; public Node left, right; public Node(int v) { val = v; left = right = null; } } // Tree structure: // 10 // / \ // 5 15 // / \ \ // 3 7 20 // / / \ // 6 17 25 Node root = new Node(10); root.left = new Node(5); root.right = new Node(15); root.left.left = new Node(3); root.left.right = new Node(7); root.left.right.left = new Node(6); root.right.right = new Node(20); root.right.right.left = new Node(17); root.right.right.right = new Node(25); void Inorder(Node node) { if (node == null) return; Inorder(node.left); Console.Write(node.val + " "); Inorder(node.right); } Inorder(root);
Inorder traversal visits nodes in ascending order for binary search trees.
Visiting left subtree of 10: 3,5,6,7 then root 10, then right subtree 15,17,20,25.
