Find a golden tile from a list of tiles
You need to keep track of visited tiles, or you risk ending in an infinite (recursive) loop. If you use recursion, and if you are not allowed to change the class, this is difficult, as you'd need to add another parameter to findGoldenTile holding the already visited tiles.

Alternatively, you could not make it recursive, but with a queue and with the set of visited tiles in the method itself. Something like this (not tested):

public Tile findGoldenTile() {
    Set&lt;Tile&gt; visited = new HashSet&lt;&gt;();
    LinkedList&lt;Tile&gt; queue = new LinkedList&lt;&gt;();
    queue.add(this);
    visited.add(this);
    while (! queue.isEmpty()) {
        Tile tile = queue.pop();
        if (tile.isGoldenTile) {
            return tile;
        }
        for (Tile x : tile.neighbors) {
            if (! visited.contains(x)) {
                queue.add(x);
                visited.add(x);
            }
        }
    }
    return null;
}