Post-order Traversal
Jazz Peh, May 20, 2020
Lets look at the 4 options to traverse a binary tree:
-
Depth First Search
-
Breadth First Search
In this post, let’s explore Post-order
traversal.
Visualise how it traverse
We first visit the Left Subtree
, then the Right subtree
and lastly, the Root
.
20
/ \
/ \
100 3
/ \ / \
50 15 250 35
/
222
r = root
lt = left subtree
rt = right subtree
1. (lt)(rt)r
2. ((lt)(rt)r)(rt)20
3. ((lt)(rt)100)(rt)20
4. (((lt)(rt)r)(rt)100)(rt)20
5. (((lt)(rt)50)(rt)100)(rt)20
6. (((222)50)(rt)100)(rt)20
7. (((222)50)(15)100)(rt)20
8. (((222)50)(15)100)((lt)(rt)r)20
9. (((222)50)(15)100)((lt)(rt)3)20
10. (((222)50)(15)100)((250)(35)3)20
Answer: 222, 50, 15, 100, 250, 35, 3, 20
Code Algorithm
Here’s the code example to implmenent a Post-order
traversal.
type BinaryNode = {
val: string;
left?: BinaryNode;
right?: BinaryNode;
};
function postOrder(root: BinaryNode): void {
if (!root) throw new Error();
postOrder(root.left);
postOrder(root.right);
console.log(root.val);
}