updateNeighborNode overwrote gScore with the heuristic, so A* behaved like greedy best-first search and found longer paths than Dijkstra.
updateNeighborNode overwrote gScore with the heuristic, so A* behaved like greedy best-first search and found longer paths than Dijkstra.