Ошибка в сравнении вершин

В исходной текущая вершина сравнивалась с вершиной из списка open по
всем полям класса Node, а не только по координатам, т.е. вершины с
одинаковыми координатами, но различными значениями g такую проверку не
проходили, и из списка ничего никогда не удалялось. Соответственно,
алгоритм ходил по одним и тем же путям многократно. Вариант исправления
данной ошибки- в явном виде сравнивать вершины по координатам, как
написано здесь, либо, возможно, добавить в описание Node метод
сравнения.
P.s. в исправленном варианте магическая строчка с добавлением вершины в
начало списка open не помогла, а несколько увеличила время поиска.