min-heap二叉树的递归函数

时间:2015-05-22 01:20:41

标签: python binary-tree

我一直坚持解决这个问题。我需要编写一个递归函数来检查每个节点是否小于其任何子节点。如果二叉树是最小堆,则返回true,否则返回false。

到目前为止:

def min_heap(t):
    if t == None:
        return True
    else:
        return t.left.value > t.value and t.right.value > t.value

1 个答案:

答案 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)