public boolean insert(T toInsert) { Node current = root; Node parent = null; while (current != null) { parent = current; if (less(toInsert, current.value)) current = current.left; else current = current.right; } current = new Node(); current.value = toInsert; if (parent == null) return true; current.parent = parent; if (less(toInsert, parent.value)) parent.left = current; else parent.right = current; return true; }