Eliminar nodo de la lista enlazada por índice

Este es mi código para eliminar un nodo de una lista vinculada.

vec_store sostieneseq ysize. Variableseq Sostiene los vectores y un puntero.

Por alguna razón, laelse if(i<s->size-1)&nbsp;no funciona cual es la ultima condicion

¿Alguien puede resolver el problema? Por cierto esto esC&nbsp;código.

void delete_vec(vec_store s, int i)
{
    if (i<0 || s->size-1<i)
    {
        printf("Cannot delete vector because index %d is out of bounds\n",i);
    }
    else if (i==0)
    {
        node temp;
        temp = s->seq;
        s->seq = s->seq->next;
        s->size--;
        free(temp);
    }
    else if(i==s->size-1)
    {
        node temp1, temp2;
        //temp1 = malloc(sizeof (node));
        temp2 = malloc(sizeof (node));
        temp1=s->seq;
        if(temp1->next==NULL) 
        {
            free(temp1);
            s->seq=NULL;
            s->size--;
            printf("s->size-1\n");
        }
        else
        {
            while (temp1->next!=NULL)
            {
                temp2 = temp1;
                temp1 = temp1->next;    
            }
            free(temp1);
            temp2->next=NULL;
            s->size--;
            printf("s->size-1 2\n");
        }
    }
    else if(i<s->size-1)
    {
        node temp1,temp2;
        int j;
        temp1=s->seq;
        temp2 = malloc(sizeof (struct node_record));

        for(j=0;j<=i-1;j++)
        {
            temp2=temp1;
            temp1 = temp1->next;
        }

        free(temp1);
        temp2->next=NULL;
        s->size--;
    }
}