我想编写一个程序来告诉我一棵树是否平衡。在这种情况下,平衡意味着相同的高度或 1 的高度差。
这是我到目前为止所写的,但它不适用于 1 的高度差。为什么?
balanced(l(_)).
balanced(b(B1, B2)):-
height(B1,H),
height(B2,H),
balanced(B1),
balanced(B2).
balanced(b(B1,B2)):-
height(B1,H + 1),
height(B2,H),
balanced(B1),
balanced(B2).
balanced(b(B1,B2)):-
height(B1,H),
height(B2,H + 1),
balanced(B1),
balanced(B2).