public void insert(BinaryTreeNode n) {
        BinaryTreeNode runner = this.root;
        BinaryTreeNode parentPostion = null;
        while (runner != null) {
            parentPostion = runner;
            if (n.compareTo(runner) <= 0) {
                runner = runner.left;
            } else {
                runner = runner.right;
            }
        }
        n.parent = parentPostion;
        if (parentPostion == null) {
            this.root = n;
        } else if (n.compareTo(parentPostion) <= 0) {
            parentPostion.left = n;
        } else {
            parentPostion.right = n;
        }
    }