0
0
DSA Typescriptprogramming~10 mins

BST Find Minimum Element in DSA Typescript - Execution Trace

Choose your learning style9 modes available
Concept Flow - BST Find Minimum Element
Start at root
Check if left child exists?
NoCurrent node is minimum
Yes
Move to left child
Back to check left child
Start at the root node and keep moving left until no left child exists. The last node reached is the minimum.
Execution Sample
DSA Typescript
function findMin(root: TreeNode | null): number | null {
  if (!root) return null;
  let current = root;
  while (current.left) {
    current = current.left;
  }
  return current.val;
}
This code finds the smallest value in a BST by moving left until no left child exists.
Execution Table
StepOperationCurrent Node ValuePointer ChangesVisual State
1Start at root10current = root (10)10 / \ 5 15
2Check left child of current (10)10left child exists (5)10 / \ 5 15
3Move current to left child5current = 510 / \ 5 15
4Check left child of current (5)5left child exists (2)10 / \ 5 15 / 2
5Move current to left child2current = 210 / \ 5 15 / 2
6Check left child of current (2)2left child does not exist10 / \ 5 15 / 2
7Return current value as minimum2return 210 / \ 5 15 / 2
💡 Left child of current node (2) is null, so current node is minimum.
Variable Tracker
VariableStartAfter Step 3After Step 5Final
current10 (root)522
Key Moments - 3 Insights
Why do we keep moving left to find the minimum?
In a BST, smaller values are always on the left. The execution_table rows 2, 4 show checking left child to move left until none exists.
What if the tree is empty?
The code returns null immediately (see execution_sample line 2). No steps happen in execution_table because root is null.
Why do we stop when current.left is null, not current itself?
Because the minimum is the leftmost node. If current.left is null, current is the smallest. See execution_table step 6 where left child is null.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'current' after step 5?
A10
B2
C5
D15
💡 Hint
Check variable_tracker column 'After Step 5' and execution_table step 5.
At which step does the algorithm find that there is no left child?
AStep 6
BStep 4
CStep 3
DStep 7
💡 Hint
Look at execution_table step 6 where left child does not exist.
If the root had no left child, what would be the minimum value returned?
AThe right child's value
Bnull
CThe root's value
DThe smallest leaf node
💡 Hint
Refer to concept_flow and execution_table step 2 where no left child means current node is minimum.
Concept Snapshot
BST Find Minimum Element:
- Start at root node
- Move left while left child exists
- When no left child, current node is minimum
- Return current node's value
- Handles empty tree by returning null
Full Transcript
To find the minimum element in a Binary Search Tree (BST), start at the root node. Keep moving to the left child because smaller values are always on the left in a BST. When you reach a node that has no left child, that node contains the minimum value. If the tree is empty, return null immediately. This process is shown step-by-step in the execution table, where the current pointer moves from the root (10) to 5, then to 2, and stops because 2 has no left child. The minimum value found is 2.