我正在做一个方法来检查二叉搜索树(BST)是否是红黑树
def isRedBlack(tree,index):
if(tree[0][1]=='red'):
return False
elif(tree[index][0]=='EMPTY' and tree[index][1]=='red'):
return False
elif(tree[index][1]=='red'):
if(tree[2*index+1][1]!='black' or tree[2*index+2][1]!='black'):
print("PROBLEM HERE")
return False
else:
if(2*index+1<len(tree)):
isRedBlack(tree,2*index+1)
if(2*index+2<len(tree)):
isRedBlack(tree,2*index+2)
return True
redBlack = [(3,'black'),(8,'red'),(8,'red'),('EMPTY','black'),('EMPTY','black'),('EMPTY','black'),('EMPTY','red')]
print("IS READBLACK: ",isRedBlack(redBlack,0))
问题是,代码进入条件时,它的红色但它的一个子元素不是黑色的,因此它应该返回False,但不是返回False,而是继续递归直到结束并返回True。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐