Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的Python递归函数返回;无”;而不是",;真的;?_Python_Recursion_Tree_Binary Search Tree_Nonetype - Fatal编程技术网

为什么我的Python递归函数返回;无”;而不是",;真的;?

为什么我的Python递归函数返回;无”;而不是",;真的;?,python,recursion,tree,binary-search-tree,nonetype,Python,Recursion,Tree,Binary Search Tree,Nonetype,我创建了一个search函数,该函数应该在二叉树中查找一个值,如果找到该值,则返回True,如果没有,则返回False 这棵树是正确的,我已经测试过了 当我打印字符串“Found”或“Not Found”时,不同的情况会起作用。但是返回True不起作用 下面是我的树类的代码: class Tree(object): def __init__(self): self.fg = None self.fd = None self.data =

我创建了一个
search
函数,该函数应该在二叉树中查找一个值,如果找到该值,则返回
True
,如果没有,则返回
False

这棵树是正确的,我已经测试过了

当我打印字符串
“Found”
“Not Found”
时,不同的情况会起作用。但是
返回True
不起作用

下面是我的树类的代码:

class Tree(object):

    def __init__(self):
        self.fg = None
        self.fd = None
        self.data = None

    def insert(self, data):
        if self.data == None:
            self.data = data

        elif self.data > data:
            if self.fg == None:
                self.fg = Tree()
            self.fg.insert(data)

        elif self.data < data:
            if self.fd == None:
                self.fd = Tree()
            self.fd.insert(data)

    def search(self, data):
        if self.data == None:
            return False
        elif self.data == data:
            print("Found")
            return True

        if self.data > data:
            if self.fg == None:
                return False
            else:
                self.fg.search(data)

        elif self.data < data:
            if self.fd == None:
                return False
            else:
                self.fd.search(data)

tree = Tree()

tree.insert(6)
tree.insert(3)
tree.insert(4)
tree.insert(5)

print(tree.search(6), "\n")
print(tree.search(7), "\n")
print(tree.search(3), "\n")
print(tree.search(4), "\n")
print(tree.search(5), "\n")

谢谢您的帮助。

您应该返回递归调用的值

return self.fg.search(data)

哦,当然了!我不习惯做递归。。。现在可以了,谢谢。
return self.fg.search(data)