private boolean isWellFormedABRI(SimpleNode node) throws SimpleNodeMalPositionne {

        // On retourne true dans le cas où le noeud est une feuille
        boolean ret = true;

        if (node != null) {

            // Si node a un fils gauche correctement positionné on descend dedans
            if (node.getLeftSon() != null) {

                // Si le fils gauche est bien > au noeud courant, on descend dedans pour vérifier
                if (((SimpleNode) node.getLeftSon()).getValue() > node.getValue()) {
                    ret = isWellFormed((SimpleNode) node.getLeftSon());
                } else {
                    throw new SimpleNodeMalPositionne("Valeur noeud courant : " + node.getValue() + ", valeur fils gauche : "
                            + ((SimpleNode) node.getLeftSon()).getValue() + ".");
                }
            } else if (node.getRightSon() != null) {

                if (((SimpleNode) node.getRightSon()).getValue() < node.getValue()) {
                    ret = isWellFormed((SimpleNode) node.getRightSon());
                } else {
                    throw new SimpleNodeMalPositionne("Valeur noeud courant : " + node.getValue() + ", valeur fils gauche : "
                            + ((SimpleNode) node.getRightSon()).getValue() + ".");
                }
            } else if (node.getValue() > this.max || node.getValue() < this.min) {
                throw new SimpleNodeMalPositionne("Valeur noeud courant : " + node.getValue() + ". Intervalle correspondant : [" + this.min + "; "
                        + this.max + "].");

            }
        } else {
            ret = true;
        }
        return ret;
    }