python:递归函数不返回true或fals

2024-09-29 07:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在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)

Tags: selfiddatareturnifisonnot
1条回答
网友
1楼 · 发布于 2024-09-29 07:25:26

您的猜测是正确的;您只需要返回递归调用的结果。你知道吗

        return self.traverseSearch(ID, current.Child)

别担心,我们都会迷失在某些事后看来显而易见的事情上。你知道吗

相关问题 更多 >