我正在尝试在树数据结构的叶子中搜索目标值。 我的功能如下:
def searchLeaves(self, target): #DFS
if len(self.children == 0): #is a leaf
if self.data == target:
return True
else:
return False
else:
for x in self.children:
return x.searchLeaves(target)
但是,我的问题出在else语句中。如果它是二叉树,我可以做
else:
return x.leftchild.searchLeaves(target) or x.rightchild.searchleaves(target)
为了巩固基础案例将产生的愚蠢和真实的组合。我怎么能将这个“或”逻辑运算符应用于未确定数量的孩子?
答案 0 :(得分:5)
使用any
:
else:
return any(x.searchLeaves(target) for x in self.children)
这相当于:
else:
for x in self.children:
if x.searchLeaves(target):
return True
return False