Description
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST.
Basically, the deletion can be divided into two stages:
- Search for a node to remove.
- If the node is found, delete the node.
Example
Example 1:
1 | Input: root = [5,3,6,2,4,null,7], key = 3 |
Example 2:
1 | Input: root = [5,3,6,2,4,null,7], key = 0 |
Example 3:
1 | Input: root = [], key = 0 |
Constraints:
- The number of nodes in the tree is in the range [0, 104].
- -105 <= Node.val <= 105
- Each node has a unique value.
- root is a valid binary search tree.
- -105 <= key <= 105
Solution
- Time Complexity:
or - Space Complexity:
1 | // O(logN) = O(H) |
v1.5.2