Implement `bstInsert(root, val)` returning a new BST with `val` inserted in the correct position, without mutating the input.
+ 1 hidden test run on Submit.
Recursing to the correct empty slot and rebuilding parents with spread inserts immutably in O(h).
Run your code to see results.