private Node findSmallest(Node root) {
        Node prev = null;
        while(root != null && !root.isNullLeaf) {
            prev = root;
            root = root.left;
        }
        return prev != null ? prev : root;
    }
Using atomicreference because java does not provide mutable wrapper. Its like
double pointer in C.
src/com/interview/tree/RedBlackTree.java