1

リストするレベルのすべてのノードを書きたいと思います。

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 はルートの値です。プログラムのどこに問題がありますか?

4

1 に答える 1