Блин, что-то я совсем запутался и приуныл. Какой вариант нужно использовать? node - вершина графа, node.link - arrayList<Integer> на другие вершины которые имею связь с node. Алгоритм поиска(в ширину или глубину не важно)
for(int i : node.link){
if(nodes.get(i).type == 0){
nodes.get(i).type = 1;
queue.add(nodes.get(i));
count++;
}
}
for(int i = 0; i < node.link.size(); i++){
if(nodes.get(node.link.get(i)).type == 0) {
nodes.get(node.link.get(i)).type = 1;
queue.add(nodes.get(node.link.get(i)));
count++;
}
}