Post-order Tree Traversal — Root Last Visualized
Learn post-order traversal — left, right, root order, step-by-step visualizer, recursive code, and tree deletion use cases.
Introduction
Post-order traversal visits nodes in Left → Right → Root order (LRN). Root is visited last — after both subtrees are processed.
Essential for deleting trees and evaluating postfix expressions.
Quick index
1. Traversal order
For tree [4, 2, 6, 1, 3, 5, 7]:
Post-order: 1 → 3 → 2 → 5 → 7 → 6 → 4
Process both subtrees first, then visit root.
2. Interactive visualizer
Post-order Traversal — Left → Right → Root
Visit root after subtrees — used to delete trees and postfix evaluation.
Post-order: Left → Right → Root.
Post-order traversal
| function postOrder(node) { | |
| if (!node) return | |
| postOrder(node.left) | |
| postOrder(node.right) | |
| visit(node) | root last |
| } |
Left → Right → Root
Order
LRN
Uses
Delete
Time
O(n)
3. Full implementation
function postOrder(node, result = []) {
if (!node) return result
postOrder(node.left, result)
postOrder(node.right, result)
result.push(node.value) // visit root LAST
return result
}
function deleteTree(node) {
if (!node) return
deleteTree(node.left)
deleteTree(node.right)
// free node — root deleted last (post-order)
node.left = node.right = null
}
function subtreeSize(node) {
if (!node) return 0
return 1 + subtreeSize(node.left) + subtreeSize(node.right)
}Function calls with output
// ── Demo calls — output shown on the right ──
postOrder(root) // → [1, 3, 2, 5, 7, 6, 4]
subtreeSize(root) // → 7
deleteTree(root) // → children freed before parent
// root.left === null, root.right === null4. When to use
| Use case | Why post-order |
|---|---|
| Delete tree | Free children before parent |
| Postfix evaluation | Operands before operator |
| Calculate subtree size | Need child results first |
| Bottom-up DP on trees | Process leaves before parents |
Summary
Post-order = root after subtrees — safe for deletion and bottom-up computation.
Next reads: Pre-order Traversal · Tree Array Implementation
Subscribe to my newsletter
Stay up to date and get notified when I share new contents.
No spam ever, unsubscribe anytime