Episode 7 — DSA with JavaScript / 7.17 — Binary Search Tree
7.17 — Quick Revision: BST
Key concepts
BST property
Left subtree < Root < Right subtree (for every node)
Operations
| Op | Balanced | Skewed |
|---|---|---|
| Search | O(log n) | O(n) |
| Insert | O(log n) | O(n) |
| Delete | O(log n) | O(n) |
Delete cases
- Leaf → remove
- One child → replace with child
- Two children → replace with inorder successor
Key algorithms
- Validate: pass min/max bounds
- Kth smallest: inorder count to k
- LCA: both < root → left, both > root → right
- Sorted array to BST: pick middle, recurse
Self-check drill
SC-001
- Q: BST property?
- A: Left < root < right for all nodes
SC-002
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-003
- Q: BST inorder gives?
- A: Sorted ascending order
SC-004
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-005
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-006
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-007
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-008
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-009
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-010
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-011
- Q: BST property?
- A: Left < root < right for all nodes
SC-012
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-013
- Q: BST inorder gives?
- A: Sorted ascending order
SC-014
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-015
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-016
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-017
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-018
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-019
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-020
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-021
- Q: BST property?
- A: Left < root < right for all nodes
SC-022
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-023
- Q: BST inorder gives?
- A: Sorted ascending order
SC-024
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-025
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-026
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-027
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-028
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-029
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-030
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-031
- Q: BST property?
- A: Left < root < right for all nodes
SC-032
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-033
- Q: BST inorder gives?
- A: Sorted ascending order
SC-034
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-035
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-036
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-037
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-038
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-039
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-040
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-041
- Q: BST property?
- A: Left < root < right for all nodes
SC-042
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-043
- Q: BST inorder gives?
- A: Sorted ascending order
SC-044
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-045
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-046
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-047
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-048
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-049
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-050
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-051
- Q: BST property?
- A: Left < root < right for all nodes
SC-052
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-053
- Q: BST inorder gives?
- A: Sorted ascending order
SC-054
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-055
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-056
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-057
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-058
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-059
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-060
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-061
- Q: BST property?
- A: Left < root < right for all nodes
SC-062
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-063
- Q: BST inorder gives?
- A: Sorted ascending order
SC-064
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-065
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-066
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-067
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-068
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-069
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-070
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-071
- Q: BST property?
- A: Left < root < right for all nodes
SC-072
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-073
- Q: BST inorder gives?
- A: Sorted ascending order
SC-074
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-075
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-076
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-077
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-078
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-079
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-080
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-081
- Q: BST property?
- A: Left < root < right for all nodes
SC-082
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-083
- Q: BST inorder gives?
- A: Sorted ascending order
SC-084
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-085
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-086
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-087
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-088
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-089
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-090
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-091
- Q: BST property?
- A: Left < root < right for all nodes
SC-092
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-093
- Q: BST inorder gives?
- A: Sorted ascending order
SC-094
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-095
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-096
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-097
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-098
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-099
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-100
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-101
- Q: BST property?
- A: Left < root < right for all nodes
SC-102
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-103
- Q: BST inorder gives?
- A: Sorted ascending order
SC-104
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-105
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-106
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-107
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-108
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-109
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-110
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-111
- Q: BST property?
- A: Left < root < right for all nodes
SC-112
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-113
- Q: BST inorder gives?
- A: Sorted ascending order
SC-114
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-115
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-116
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-117
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-118
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-119
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-120
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-121
- Q: BST property?
- A: Left < root < right for all nodes
SC-122
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-123
- Q: BST inorder gives?
- A: Sorted ascending order
SC-124
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-125
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-126
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-127
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-128
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-129
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-130
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-131
- Q: BST property?
- A: Left < root < right for all nodes
SC-132
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-133
- Q: BST inorder gives?
- A: Sorted ascending order
SC-134
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-135
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-136
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-137
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-138
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-139
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-140
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-141
- Q: BST property?
- A: Left < root < right for all nodes
SC-142
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-143
- Q: BST inorder gives?
- A: Sorted ascending order
SC-144
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-145
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-146
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-147
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-148
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-149
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-150
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-151
- Q: BST property?
- A: Left < root < right for all nodes
SC-152
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-153
- Q: BST inorder gives?
- A: Sorted ascending order
SC-154
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-155
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-156
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-157
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-158
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-159
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-160
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-161
- Q: BST property?
- A: Left < root < right for all nodes
SC-162
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-163
- Q: BST inorder gives?
- A: Sorted ascending order
SC-164
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-165
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-166
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-167
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-168
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-169
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-170
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-171
- Q: BST property?
- A: Left < root < right for all nodes
SC-172
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-173
- Q: BST inorder gives?
- A: Sorted ascending order
SC-174
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-175
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-176
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-177
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-178
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-179
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-180
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-181
- Q: BST property?
- A: Left < root < right for all nodes
SC-182
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-183
- Q: BST inorder gives?
- A: Sorted ascending order
SC-184
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-185
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-186
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-187
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-188
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-189
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-190
- Q: BST floor/ceiling?
- A: Track closest while searching
SC-191
- Q: BST property?
- A: Left < root < right for all nodes
SC-192
- Q: BST search time?
- A: O(log n) balanced, O(n) skewed
SC-193
- Q: BST inorder gives?
- A: Sorted ascending order
SC-194
- Q: Delete node with 2 children?
- A: Replace with inorder successor
SC-195
- Q: Validate BST?
- A: Pass min/max bounds recursively
SC-196
- Q: Kth smallest?
- A: Inorder traversal, count to k
SC-197
- Q: Sorted array to BST?
- A: Pick middle as root, recurse
SC-198
- Q: BST vs Hash Map?
- A: BST: sorted order + range queries
SC-199
- Q: Balanced BST?
- A: AVL or Red-Black tree
SC-200
- Q: BST floor/ceiling?
- A: Track closest while searching