Adicionar elemento no final - Lista encadeada circular - java

Preciso implementar o código desse método para adicionar o elemento “s” ao final da lista, consegui fazer a lógica para adicionar usando como base a lista encadeada simples, mas preciso que seja de maneira Circular, alguém pode ajudar?

private TNo inicio;

public ListaEncadeadaCircular() {
    inicio=null;
    
}
public void add(String s) throws Exception {
    //adicionar no final
    TNo novo = new TNo(s);
    
    if(inicio==null) {
        inicio=novo;    
    }else {
        
        TNo auxiliar = inicio;
        
        while (auxiliar.proximo !=null) {
            auxiliar= auxiliar.proximo;
        }
        auxiliar.proximo = novo;
    }
    

Numa lista circular, não vais ter “início” ou “fim”. No limite, podes considerar guardar um primeiro nó e que o fim é o nó cujo “próximo” é o primeiro nó.

if(inicio == null) {
  inicio = novo;    

} else {

  TNo auxiliar = inicio;

  while (auxiliar.proximo != inicio) {
    auxiliar = auxiliar.proximo;
  }
  auxiliar.proximo = novo;
}
novo.proximo = inicio;