我一直坚持解决这个问题。我需要编写一个递归函数来检查每个节点是否小于其任何子节点。如果二叉树是最小堆,则返回true,否则返回false。
到目前为止:
def min_heap(t):
if t == None:
return True
else:
return t.left.value > t.value and t.right.value > t.value
答案 0 :(得分:1)
如果它是递归的,那意味着它应该自己调用。假设您的min-heap定义为
每个节点都小于其子节点
def min_heap(t):
if t == None:
return True
if t.left and t.value > t.left.value:
return False
if t.right and t.value > t.right.value:
return False
return min_heap(t.left) and min_heap(t.right)