リストするレベルのすべてのノードを書きたいと思います。
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 はルートの値です。プログラムのどこに問題がありますか?