(Edit: Whoops, I misread you and thought you were saying you couldn&#x27;t remember the brute-force one, not the more elegant solution. Ah what the hell, it was fun to write. :)<p>A recursive implementation of depth-first search should only take ten minutes to write. OK, here, I&#x27;ll do it without looking anything up. Start time 8:55pm.<p><pre><code>    #include &lt;stdio.h&gt;
    #include &lt;memory.h&gt;

    const int WIDTH = 32; &#x2F;&#x2F; adjust to suit
    const int HEIGHT = 32; &#x2F;&#x2F; adjust to suit
    const bool WALLS[WIDTH][HEIGHT] = {
        &#x2F;&#x2F; enter maze layout here, true = wall
        &#x2F;&#x2F; this isn&#x27;t a test of file IO knowledge
        &#x2F;&#x2F; make sure the outer perimeter of the maze is
        &#x2F;&#x2F; fully closed with walls
    };
    const int START_X = 16; &#x2F;&#x2F; adjust to suit
    const int START_Y = 16; &#x2F;&#x2F; adjust to suit

    const int GOAL_X = 16; &#x2F;&#x2F; adjust to suit
    const int GOAL_Y = 16; &#x2F;&#x2F; adjust to suit

    bool search_maze(bool **searched, int cur_x, int cur_y,
        int start_x, int start_y) {
        const int DIRS = 4;
        const int DIR_X = { -1, 0, 1, 0 };
        const int DIR_Y = { 0, 1, 0, -1 };

        searched[cur_x][cur_y] = true;
        for (int i=0; i&lt;DIRS; i++) {
            int new_x = cur_x + DIR_X[i];
            int new_y = cur_y + DIR_Y[i];

            if (WALLS[new_x][new_y])
              continue;

            &#x2F;&#x2F; if moving in this direction lands us on the start 
            &#x2F;&#x2F; point, or searching starting here returns true,
            &#x2F;&#x2F; then we&#x27;re done and our current pos is on the path
            if ((new_x == start_x &amp;&amp; new_y == start_y) ||
                  (!searched[new_x][new_y] &amp;&amp; search_maze(
                  searched, new_x, new_y, start_x, start_y)) {
                printf(&quot;Go to %d, %d\n&quot;, new_x, new_y);
                return true;
            }
        }
        return false;
    }

    int main(int argc, char **argv) {
        bool searched[WIDTH][HEIGHT];
        memset(searched, 0, sizeof(searched));

        printf(&quot;Starting at %d, %d\n&quot;, START_X, START_Y);
        search_maze(searched, GOAL_X, GOAL_Y, START_X, START_Y);
        printf(&quot;Goal at %d, %d\n&quot;, GOAL_X, GOAL_Y);

        return 0;
    }
</code></pre>
End time 9:12pm. So 17 minutes (what&#x27;s that rule about estimating software dev time?), and I haven&#x27;t run and tested it yet, but it should show what the interviewer wants.