'''
BST Successor Search
In a Binary Search Tree (BST), an Inorder Successor of a node is defined as the node with the smallest key greater than
 the key of the input node (see examples below). Given a node inputNode in a BST, you’re asked to write a function
 findInOrderSuccessor that returns the Inorder Successor of inputNode. If inputNode has no Inorder Successor,
 return null.
'''

# refer to Q4.6