Pasting it here so you don't have to find it in the attached code:
public void move(int x, int y)
{
    SnakeSection head = new SnakeSection(this.getX() + x, this.getY() + y);
    checkBorders(head);
    checkBody(head);
    if(isAlive())
    {
        this.sections.add(0, head);
        if(head.getX() == Room.game.getMouse().getX() && head.getY() == Room.game.getMouse().getY())
        {
            Room.game.eatMouse();
        }
        else
        {
            this.sections.remove(this.sections.size() - 1);
        }
    }
}
The solution appears to contain some inefficient code, that's the only difference between it and my own code that I can find. The solution checks !isAlive instead of isAlive. I always prefer to check for true statements rather than false statements if it doesn't make the code more complicated. In this case checking for isAlive makes the code simpler. But I wonder if the validation is insisting on doing it that way.