def reconstruct_path(came_from, start, goal):
    """
    Return the shortest path travelled by a* algorithm
    
    Args:
       came_from(dictionary): Linked-list of previously visited place
       start(int): the start node id
       goal(int): the goal node id
       
    Returns:
       path(array): An array of integers representing the shortest sequence of intersection visits from start to goal in a given map

    """
    
    current = goal
    path = []
    while current != start:
        path.append(current)
        current = came_from[current]
    path.append(start) 
    path.reverse() 
    return path