为什么我的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)