complete(T) :- complete(T, _).
complete(nil, 0).
complete(tree(_, L, R), N) :-
complete(L, N1),
complete(R, N1),
N is N1 + 1.
обновление :
У меня работает:
?- complete(nil).
true.
?- complete(tree(1,nil,nil)).
true.
?- complete(tree(1,tree(2,nil,nil),nil)).
false.
?- complete(tree(1,tree(2,nil,nil),tree(3,nil,nil))).
true.