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; } } } }