510. Inorder Successor in BST II
510. Inorder Successor in BST II
Description
Given a node
in a binary search tree, return the in-order successor of that node in the BST. If that node has no in-order successor, return null
.
The successor of a node
is the node with the smallest key greater than node.val
.
You will have direct access to the node but not to the root of the tree. Each node will have a reference to its parent node. Below is the definition for Node
:
1 | class Node { |
Example 1:
1 | Input: tree = [2,1,3], node = 1 |
Example 2:
1 | Input: tree = [5,3,6,2,4,null,null,1], node = 6 |
Constraints:
- The number of nodes in the tree is in the range
[1, 10^4]
. -10^5 <= Node.val <= 10^5
- All Nodes will have unique values.
Follow up: Could you solve it without looking up any of the node’s values?
Hints/Notes
- binary search tree
- if the node has right child, then it’s the leftmost node of the right child
- otherwise, it’s the node’s first parent that has the node in left branch
Solution
Language: C++
1 | /* |