Я пытаюсь выяснить минимальную глубину для листового узла, используя первый поиск по ширине. У меня есть следующая базовая структураМинимальная глубина бинарного дерева с использованием BFT?
public int BFS(Node root){
if (root == null) return 0;
Queue<Node> q = new LinkedList<Node>();
int min = 1;
q.clear(); // I saw this in a queue example, unsure if needed
q.add(root);
while (! q.isEmpty()){
Node n = q.remove();
if (n.left != null) q.add(n.left);
if (n.right != null) q.add(n.right);
}
}
Я не уверен, где обновить счетчик минимальной высоты. Я думал о том, чтобы поместить его внутри операторов if в переменные цикла temp l & r, где я бы установил их в 1, если левый или правый не равен null, 0 else. Затем добавьте мин этих 2 к минимальной высоте, но это работает только, если я на одном уровне выше листьев.