A good way to stay flexible is to write less code. Pragmatic Programmer
Write a program to find Predecessor and Successor of the given node in the Binary Search Tree.
If the node has two children, its predecessor is the maximum value in its left subtree and its successor the minimum value in its right subtree. If it does not have a left child, a node's predecessor is its first left ancestor.
All Binary Tree Values: 4 8 10 12 14 20 22 Predecessor of 14 is 12 Successor of 14 is 20