https://practice.geeksforgeeks.org/problems/predecessor-and-successor/1