0
我试图编写代码,如果给定一棵树,将通过树并返回该树中的最小值,如果树为空,它将返回val。我现在编译的内容不会运行。任何帮助?在二叉树中返回最小值
minValue :: Ord a => a -> BTree a -> a
minValue val Empty = val
minValue val (BNode v left Empty) = minimum [minValue v left]
minValue val (BNode v Empty right) = minimum [minValue v right]
minValue val (BNode v left right) = minimum ([minValue v left]++[minValue v right])
在二叉搜索树中排列了树的元素吗?在任何情况下,您都不需要使用列表或“最小”来执行此操作。在第二和第三个方程中,它们是多余的 - 单元素列表的最小值是列表的一个元素。 – 2015-04-02 20:56:33
树是有序的,是的。 – tamais2 2015-04-02 21:00:20
另外:我只是试过你的功能,它有这个bug:'minValue 17(BNode 22 Empty Empty)== 22' – 2015-04-02 21:08:41