列出树中叶子的路径

Cth*_*son 5 tree haskell list

我正在尝试编写一个函数来查找到树中叶子的所有路径。例如,给定一棵树,看起来像这样:

           1
         /  \
        2    5
       / \    \
      3   4    6
Run Code Online (Sandbox Code Playgroud)

输出列表将是:[[1,2,3],[1,2,4],[1,5,6]]

此函数的类型签名是:branches :: Tree a -> [[a]]。请注意,这里使用了Data.Tree包中定义的 Tree 类型,尽管示例树是二叉树,但实际的树类型是玫瑰树。