如何计算haskell中二叉树中的节点数

时间:2017-09-27 20:14:11

标签: haskell tree binary-tree nodes

所以我想出了这段代码,不知道如何继续。

treeSize :: (Integral b) => BinaryTree a -> b
treeSize tree = case tree of
    Null -> 0
    Node _ t1 t2 -> 

1 个答案:

答案 0 :(得分:2)

最后一种情况只需Node _ t1 t2 -> 1 + treeSize t1 + treeSize t2。此外,Integral b约束为您提供了超出您需要的约束 - Num b就足够了。

treeSize :: Num b => BinaryTree a -> b
treeSize Null = 0
treeSize (Node _ t1 t2) = 1 + treeSize t1 + treeSize t2