Валидатор принял решение с первого раза. Но я сомневаюсь в его правильности, т.к. делал интуитивно, рандомно нажал "проверить" (а вдруг?). Что скажут знатоки? Если решение неверное - просьба поправить валидатор. Если верное - удалю пост.
public class Solution implements Serializable {
    int node;
    transient List<Solution> edges = new LinkedList<>();

    private void writeObject(ObjectOutputStream out) throws IOException {
        out.defaultWriteObject();
        out.writeInt(edges.size());
        edges.forEach(x -> {
            try {
                out.defaultWriteObject();
            } catch (IOException e) {
                e.printStackTrace();
            }
        });

    }

    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        in.defaultReadObject();
        int size = in.readInt();
        for (int i = 0; i < size; i++) {
            edges.add((Solution) in.readObject());
        }
    }

    public static void main(String[] args) {

    }
}