tipoNo* balanceamentoCaso4(tipoNo* raiz, tipoNo* n){
    if(n == n->noPai->noDireito && n->noPai == noAvo(n)->noEsquerdo){
        raiz = rotacaoEsquerda(raiz, n->noPai);
        n = n->noEsquerdo;
    }

    else if(n == n->noPai->noEsquerdo && n->noPai == noAvo(n)->noDireito){
        raiz = rotacaoDireita(raiz, n->noPai);
        n = n->noDireito;
    }

    return balanceamentoCaso5(raiz, n);
}
NO* balanceamentoCaso4(NO* raiz, NO* n) {
    if(n == n->pai->direita && n->pai == noAvo(n)->esquerda) { /*se ele tiver no lado direito e o pai lado esquerdo*/
        /*   (4)             (4)              (3)
             /                /               /   \
          (2)        =>    (3)no    =>      (2)   (4)
             \             /
              (3)no      (2) */
        raiz = rotacaoEsquerda(raiz, n->pai);
        n = n->esquerda;
    }
    /* (4)           (4)                 (5)
         \              \               /   \
         (6)    =>      (5)    =>     (4)  (6)
        /                  \
     (5)no                 (6)                  */

    else if(n == n->pai->esquerda && n->pai == noAvo(n)->direita) {
        raiz = rotacaoDireita(raiz, n->pai);
        n = n->direita;
    }

    return balanceamentoCaso5(raiz, n);
}