Я хотел бы написать все узлы на указанном уровне.OCaml - узлы разбора на уровне в дереве
type 'a tree = T of 'a * 'a tree * 'a tree;;
let at_level t lvl=
let rec aux t k =
match t with
|Leaf -> []
|T(x, l, r) -> if k = lvl then
(x::aux l (k+1)) @ (aux r (k+1))
else
(aux l (k+1)) @(aux r (k+1))
in aux t lvl;;
Но я всегда получаю результат: [x] где x - значение корня. Где проблема в моей программе?
подсказка: поиск в ширину –