public class IntBinarySearchTree {
    IntTreeNode root;

    public IntBinarySearchTree(){
    }

    public void add(int value){
        if (root == null){
            root = new IntTreeNode(value);
            return;
        }

        IntTreeNode currentRelativRoot = root;
        while (true) {
            if(value == currentRelativRoot.value){
                return;
            }
            if (value < currentRelativRoot.value) {
                if (currentRelativRoot.left == null) {
                    currentRelativRoot.left = new IntTreeNode(value);
                    return;
                } else currentRelativRoot = currentRelativRoot.left;

            } else {
                if (currentRelativRoot.right == null) {
                    currentRelativRoot.right = new IntTreeNode(value);
                    return;
                } else currentRelativRoot = currentRelativRoot.right;

            }
        }
    }
    public boolean contains(int value){
        if (root == null) return false;
        IntTreeNode currentRelativRoot = root;
        while (true){
            if(value == currentRelativRoot.value){
                return true;
            }
            if (value < currentRelativRoot.value) {
                if (currentRelativRoot.left == null) {
                    return false;
                } else currentRelativRoot = currentRelativRoot.left;

            } else {
                if (currentRelativRoot.right == null) {
                    return false;
                } else currentRelativRoot = currentRelativRoot.right;

            }
        }

    }
}
