HardPro challengePythonJavaScriptTypeScript

Binary Search Tree

Data StructuresTreesAlgorithms

Implement a BST with:

  • insert(value) — insert a number.
  • search(value)boolean — check if value exists.
  • inorder()number[] — sorted traversal.
  • delete(value) — remove a value if present.

solve(ops) replays operations and returns results for search and
inorder. insert/delete return null.

Sample tests

Test #1Delete node with one child
Input: [[["insert",5],["insert",3],["insert",7],["insert",6],["delete",7],["inorder"]]]
Output: [null,null,null,null,null,[3,5,6]]
Test #2Delete node with two children (successor is 8)
Input: [[["insert",5],["insert",3],["insert",7],["insert",6],["insert",8],["delete",7],["inorder"]]]
Output: [null,null,null,null,null,null,[3,5,6,8]]
Test #3Insert three values, inorder returns sorted
Input: [[["insert",5],["insert",3],["insert",7],["inorder"]]]
Output: [null,null,null,[3,5,7]]
Test #4Search hit and miss
Input: [[["insert",5],["search",5],["search",6]]]
Output: [null,true,false]
Test #5Delete leaf node
Input: [[["insert",5],["insert",3],["insert",7],["delete",3],["inorder"]]]
Output: [null,null,null,null,[5,7]]