找出二叉树的高度

时间:2012-08-29 10:28:15

标签: prolog binary-tree

我想知道如何获得二叉树的总高度。

这是我在开始错误循环之前走了多远。

height( leaf(_), 1 ).
height( branch(Branch1, Branch2), H ):-
    height(Branch1, H1),
    height(Branch2, H2),
    is max(H1, H2).

我认为我走在正确的轨道上,但我似乎无法绕过最后一部分(因为一旦设置了值,这些变量就无法改变)。

1 个答案:

答案 0 :(得分:2)

嗯,你快到了。我没有太多要说的,因为你所写的内容非常正确,所以我将完成这项工作。

height( leaf(_), 1 ).
height( branch(Branch1, Branch2), H ):-
    height(Branch1, H1),
    height(Branch2, H2),
    H is max(H1, H2) + 1.