我想制作一个简单的函数将两棵树合并成一棵树然后返回它。虽然我没有收到任何错误,但该函数输出了错误的树。这让我觉得这个函数在某个地方有不正确的逻辑,但我无法弄清楚。
data Tree = Node Int Tree Tree | Leaf
deriving Show
mergeTrees :: Tree -> Tree -> Tree
mergeTrees Leaf Leaf = Leaf
mergeTrees t Leaf = t
mergeTrees Leaf t = t
mergeTrees (Node val1 left1 right1) (Node val2 left2 right2) =
Node (val1 + val2) (mergeTrees left1 left2) (mergeTrees right1 right2)
这是一个很棒的问题,请解决它