Ich versuche, ein binäres Suchbaumproblem zu lösen, aber ich kann nicht alle Testfälle bestehen. Ich muss true zurückgeben, wenn der Baum ein binärer Suchbaum ist, andernfalls muss ich false zurückgeben. Kann mir jemand sagen, was ich falsch mache?Ist Baum ein binärer Suchbaum?
'''
class node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
'''
def checkBST(root):
if root.left == None and root.right == None:
return True
if root == None:
return True
if root.left != None:
if root.left.data < root.data:
return True
else:
return False
if root.right != None:
if root.right.data > root.data:
return True
else:
return False
return chckBST(root.left) and chckBST(root) and chckBST(root.right)
Welche Testfälle passieren Sie nicht? –
warum rufst du 'chckBST (root)' nochmal an, sollte es beim ersten Aufruf vom Testfall selbst richtig sein? Ich denke, rekursive Anrufe sollten nur für links und rechts sein – Yazan