public class BinaryTree {
  private BinaryNode root;

  private BinaryNode insert(BinaryNode curNode, BinaryNode newNode) {
    BinaryNode returnNode = null;
    //insert code
    // returnNode = insert(curNode.getRight(), newNode);

    return returnNode;
  }
}

public class BinaryTree {
  private int __insertRecursionCount;
  private BinaryNode root;

  private BinaryNode insert(BinaryNode curNode, BinaryNode newNode) {
    __insertRecursionCount++;
    if (__insertRecursionCount > MAX_COUNT) {
      System.out.println("Recursion limit exceeded for insert");
      __insertRecursionCount--; // so it ends at 0
      return null;
    }

    BinaryNode returnNode = null;

    //insert code
    // returnNode = insert(curNode.getRight(), newNode);

    __insertRecursionCount--;
    return returnNode;
  }
}