我已经在python中实现了非平衡二叉树,现在想为它创建一个可以返回True和False的搜索方法。 但是,我现在创建了这个递归函数,它可以打印结果,但它只返回“None”。你知道吗
我猜这是因为只有最后一个递归调用返回了一些东西,而外部调用没有。你知道吗
我该怎么解决这个问题?我觉得这应该是相当微不足道的,我困扰我,我是如此迷失。你知道吗
def traverseSearch(self, ID, current):
if current == None: # if we have not found our goal, the current node is null
print("not found")
return False
if current.ID == ID: # succes statement
print("found")
return True
if ID > current.ID: # call recursive on left children if data is bigger
self.traverseSearch(ID, current.rightChild)
if ID < current.ID: # call recursive on Right children if data is bigger
self.traverseSearch(ID, current.leftChild)
它现在改为以下内容,但似乎仍然返回nonetype
def traverseSearch(self, ID, current):
if current == None: # if we have not found our goal, the current node is null
print("not found")
return False
if current.ID == ID: # succes statement
print("found")
return True
if ID > current.ID: # call recursive on left children if data is bigger
self.traverseSearch(ID, current.rightChild)
if ID < current.ID: # call recursive on Right children if data is bigger
self.traverseSearch(ID, current.leftChild)
您的猜测是正确的;您只需要返回递归调用的结果。你知道吗
别担心,我们都会迷失在某些事后看来显而易见的事情上。你知道吗
相关问题 更多 >
编程相关推荐