我想编写一个函数来告诉我给定列表是否是最小堆。
到目前为止我所写的:
def is_min_heap(L):
return _is_min_heap(L, 0)
def _is_min_heap(L, i):
if
#base case
else:
return (L[i] < L[2*i+1] and _is_min_heap(L, 2*i+1)) and (L[i] < L[2*i+2] and _is_min_heap(L, 2*1+2))
我不确定基本情况应该是什么,我的递归调用是否正确?
另外,您如何控制索引最终不会超出范围?