Поиск в глубину, компоненты связности неориентированного графа

Дан неориентированный граф, возможно, с петлями и кратными ребрами. Необходимо построить компоненту связности, содержащую первую вершину. Вывести снаяала количество вершин в компоненте связности, на следующей строке - сами вершины компоненты связности, перечисленные в порядке возрастания номеров.

вот мой код, который не проходит все тесты... в чем ошибка?

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
class Edge 
{
    int source, dest;
    public Edge(int source, int dest)
    {
        this.source = source;
        this.dest = dest;
    }
}

class Graph 
{
    List<List<Integer>> adjList = null; //все связи
    Graph(List<Edge> edges, int n)
    {
        adjList = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            adjList.add(new ArrayList<>());
        }
        for (Edge edge: edges)
        {
            int source = edge.source;
            int dest = edge.dest;
            adjList.get(source).add(dest);
            adjList.get(dest).add(source);
        }
    }
}

class Main
{
    public static void DFS(Graph graph, int v, boolean[] used)
    {
        //текущая вершина использована
        used[v] = true;

        System.out.print(v + " ");
      
        for (int j: graph.adjList.get(v))
        {
            if (!used[j])
            {
                DFS(graph, j, used);

            }
        }

    }

    public static void main(String[] args)
    {
        

        Scanner con = new Scanner(System.in);
        int n = con.nextInt(); //verc,
        int m = con.nextInt(); //edges


        List<Edge> edges = Arrays.asList();

        for(int i=0; i<m; i++)
        {
            int v = con.nextInt();
            int w = con.nextInt();
            Edge _ed = new Edge(v, w);
        }

        Graph graph = new Graph(edges, n+1);
        boolean[] used = new boolean[n+1];
        System.out.println(used.length - 1);

        for (int i = 1; i < n+1; i++)
        {
            if (!used[i])
            {
                DFS(graph, i, used);

            }
        }




    }
}

Ответы (0 шт):