Вам дано Дерево, состоящее из N узлов. Дерево - это полностью связанный граф, состоящий из N узлов и краев N-1. Узлы в этом дереве индексируются от 1 до N. Рассмотрим узел, проиндексированный 1, как корневой узел этого дерева. Корневой узел лежит на уровне один в дереве. Вам дается дерево и целое число x. Вам нужно узнать количество узлов, лежащих на уровне x.Поиск количества узлов на каждом уровне во время bfs
Входного формат
Первая строка состоит из одного целого числа N, обозначающее количество узлов в дереве. Каждая из следующих n-1 строк состоит из 2 целых чисел a и b, обозначающих неориентированный край между узлом a и узлом b. Следующая строка состоит из одного целого x.
Формат вывода
Вам нужно распечатать один целых чисел, обозначающих число узлов на уровне х.
Ниже приведен фрагмент кода, который я написал, и его неправильная информация. Пожалуйста, помогите мне найти ошибку.
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;
public class LevelNodes {
public static ArrayList[] adj;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
boolean[] visites = new boolean[N];
ArrayList[] adj = new ArrayList[N];
for(int j=0;j<N;j++){
adj[j] = new ArrayList();
}
for(int i = 0;i < (N-1) ;i++){
int a = sc.nextInt();
int b = sc.nextInt();
adj[a-1].add(b);
adj[b-1].add(a);
}
int level = sc.nextInt();
int counter = 0;
LinkedList list = new LinkedList();
list.add(1);
counter++;
while(!list.isEmpty()){
int n = (Integer) list.poll();
for(int x = 0; x< adj[n-1].size();x++){
list.add(adj[n-1].get(x));
}
counter++;
if(counter == level){
System.out.println(list.size());
break;
}
}
}
}
Привет @Vivek и добро пожаловать в SO! Вы пытались отладить свой код? Как вы думаете, в чем проблема? Каково ваше текущее поведение и почему оно неверно? –
Какое сообщение об ошибке вы получаете? – brso05
Возможно, вы захотите добавить 'if (level <= 0 || N <= level) {System.out.println (" 0 "); System.exit (0); } 'и аналогично, когда' counter' никогда не равен 'level'. – greybeard