private RebalanceIndex getRebalanceIndex(Node n) {
        //Index der angibt wie die Rebalancierung durchzuführen ist
        RebalanceIndex rebalanceIndex = null;

        //Balancierungsindex des Root Knotens berechnen
        int balanceIndex = getBalanceIndex(n);

        if (balanceIndex >= -1 && balanceIndex <= 1) {
            //Wenn der balance index zwischen -1 und 1 liegt ist der Subtree der am Knoten hängt ausbalanciert
            rebalanceIndex = RebalanceIndex.BALANCED;
        } else {
            if (balanceIndex == 2) {
                //BalanceIndex liegt bei 2. Der Baum benötigt eine Rechtsrotation oder Linksrechtsrotation um ausbalanciert zu werden
                if (getBalanceIndex(n.getLft()) == 1 || getBalanceIndex(n.getLft()) == 0) {
                    //Baum benötigt eine Rechtsrotation zum ausbalancieren
                    rebalanceIndex = RebalanceIndex.RIGHTRIGHT;
                } else {
                    //Baum benötigt eine Links-Rechtsrotation zum ausbalancieren
                    rebalanceIndex = RebalanceIndex.LEFTRIGHT;
                }
            } else {
                //BalanceIndex liegt bei -2. Der Baum benötigt eine Linksrotation oder Rechtslinksrotation um ausbalanciert zu werden
                if (getBalanceIndex(n.getRgt()) == -1 || getBalanceIndex(n.getRgt()) == 0) {
                    //Baum benötigt eine Linksrotation 
                    rebalanceIndex = RebalanceIndex.LEFTLEFT;
                } else {
                    //Baum benötigt eine Rechtslinksrotation 
                    rebalanceIndex = RebalanceIndex.RIGHTLEFT;
                }
            }
        }

        //Rebalancierungsindex zurückgeben
        return rebalanceIndex;
    }