code: protected static List<Point> getNodePath (Node n)
      {
          Node cur = n;
          ArrayList<Point> path = Lists.newArrayList();
  
          while (cur != null) {
              // add to the head of the list since we're traversing from
              // the end to the beginning
              path.add(0, new Point(cur.x, cur.y));
  
              // advance to the next node in the path
              cur = cur.parent;
          }
  
          return path;
      }
docs: Return a list of <code>Point</code> objects detailing the path from the first node (the
  given node's ultimate parent) to the ending node (the given node itself.)
  
  @param n the ending node in the path.
  
  @return the list detailing the path.