Почему данная реализация неверна? валидатор принял все пункты кроме строки return
( (first==sol.first)||(first!=null&&first.equals(sol.first))&&((last==sol.last)||(last!=null&&last.equals(sol.last)) ) ) якобы это не учитывает равенство на null
@Override
public boolean equals(Object n) {
if (n == this) return true;
if (n == null) return false;
if(n.getClass() != this.getClass()) return false;
Solution sol = (Solution) n;
return ( (first==sol.first)||(first!=null&&first.equals(sol.first))&&((last==sol.last)||(last!=null&&last.equals(sol.last)) ) );
}