問題62

二分木の内部ノード(葉以外のノード)をすべてリストとして返しなさい。

import LeanBook.Problem61A

def internals {α : Type} (t : BinTree α) : List α :=
  match t with
  | .empty => []
  | .node _ .empty .empty => []
  | .node v left right =>
    [v] ++ internals left ++ internals right

#guard internals [tree| 1] = []
#guard internals [tree| 1 * (2 + 3)] = [1]
#guard internals [tree| 1 * (2 * (3 + 4) + 5 * (6 + 7))] = [1, 2, 5]