Also dein Fehler ist zunächst, dass du "w" in der while Schleife initialisierst und daher die Methode w nicht zurückgeben kann, da w ja nach der while-Schleife "gelöscht" wird. Du müsstest das int vor dem w wegmachen und w stattdessen unter int b deklarieren also
...
int b = 0;
int w;
while(...){
w = b + 1;
}
...
Jetzt verstehe ich aber nicht inwieweit dir das irgendwie die Länge von der Liste ausgibt, da du in der while Schleife nur w als b + 1 deklarierst und sich b ja nicht ändert. Also ist w nur dauerhaft 0 + 1 = 1.
Stattdessen solltest du das w komplett löschen und in der while-Schleife nur
b = b + 1;
setzen.