Widzę tutaj potencjalny problem. Nigdy nie powinno się używać operatora == do porównywania liczb zmiennopozycyjnych. Może w tym wypadku nigdy nie sprawi to problemu ale warto trochę zmodyfikować tą funkcję.
Po pierwsze, dodać brakujące 2 linijki, które proponuję zawsze umieszczać na początku przeciążonej funkcji equals.
```
if (this == o) return true;
if (!(o instanceof Node)) return false;
```
A potem porównanie dwóch liczb zmiennopozycyjnych wykonać według jednej z dostępnych metod, np. z maksymalną stałą wartością błędu.
```
if(Math.abs(A - B) < epsilon)
```
Epsilon będzie jakąś małą liczbą