A parte che c'è qualcosa che ancora non mi convince su quest'algoritmo (tanto per dirne una, quella variabile "int s" che non viene mai usata), direi che per quanto riguarda complessità di tempo e spazio siamo sempre lì.

La ricorsione procede per tutta la lunghezza della lista, quindi se questa è n ancora una volta avremo una complessità di tempo asintotica pari a O(n).

Per la complessità di spazio, abbiamo una lista di input di lunghezza n e una di output la cui lunghezza è variabile perché, se ho capito bene, avrà gli stessi nodi di quella di input che sono compresi tra x e y e che sono multipli di z. Quindi diciamo che nel caso migliore non ci sarà nulla da duplicare (perché ad esempio nessuno è multiplo di z o nessuno è compreso tra x e y) e allora la lunghezza della lista di output sarà pari a 0, quindi avremo 0 + n = n che asintoticamente è ovviamente O(n). Nel caso peggiore, invece, avremo duplicato tutti i nodi della lista, e allora ci ritroveremo con una lista di lunghezza pari esattamente a quella della lista di input, quindi n, e in totale n + n = 2n che asintoticamente è sempre lineare O(n), quindi in tutti i casi anche la complessità asintotica di spazio è O(n).

Ovviamente, quando una complessità asintotica è uguale sia nel caso migliore che nel caso peggiore, cioè quando è (ad esempio) sia Ω(n) che O(n), allora diciamo che è complessivamente Θ(n)... ma vabbè o-o"