图的深度遍历或广度遍历java都试过了93.3%超时。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException{
        //        Scanner scanner = new Scanner(System.in);
        //        int n = Integer.parseInt(scanner.nextLine());
        //        int ai = Integer.parseInt(scanner.nextLine());
        //        int m = Integer.parseInt(scanner.nextLine());
        BufferedReader buffR = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(buffR.readLine());
        int ai = Integer.parseInt(buffR.readLine());
        int m = Integer.parseInt(buffR.readLine());
        HashMap<Integer, HashSet> map = new HashMap<>();
        for(int i = 0; i < m; i++){
            String[] s = buffR.readLine().split(",");
            int node1 = Integer.parseInt(s[0]), node2 = Integer.parseInt(s[1]);
            if(!map.containsKey(node1)){
                map.put(node1, new HashSet());
            }
            if(!map.containsKey(node2)){
                map.put(node2, new HashSet());
            }
            map.get(node1).add(node2);
            map.get(node2).add(node1);
        }
        HashSet<Integer> set = new HashSet<>();
        set.add(ai);
        HashSet<Integer> arrive = map.get(ai);
        int size1 = arrive.size();
        //        while (!arrive.isEmpty()) {
        //            HashSet<Integer> temp = new HashSet<>();
        //            for(Integer k : arrive){
        //                //如果k没有访问过
        //                if(!set.contains(k)){
        //                    temp.addAll(map.get(k));
        //                    set.add(k);
        //                }
        //            }
        //            arrive = temp;
        //        }
        //        System.out.println(set.size() - size1 - 1);
        Queue<Integer> queue = new LinkedList<>();
        queue.add(ai);
        while (!queue.isEmpty()) {
            HashSet<Integer> temp = map.get(queue.poll());
            for(Integer t : temp){
                if(!set.contains(t)){
                    set.add(t);
                    queue.offer(t);
                }
            }
        }
        System.out.println(set.size() - size1 - 1);
    }
}