我试图在二叉树分支中找到nodeA和nodeB。我返回的和应该等于找到的节点数。这是我的实现
def checkSubtree(self, nodeA, nodeB, node):
if node is None:
return 0
if node is nodeA or node is nodeB:
return 1
return self.checkSubtree(nodeA, nodeB, node.leftChild) + self.checkSubtree(nodeA, nodeB, node.rightChild)
当我应该得到2时,我一直得到1。我发现这是因为第二个if语句在第一次传递时执行并立即返回
我该如何改进这一点。我不想使用额外的变量来存储结果并返回它
nodeA
或nodeB
节点仍然可以有子节点,这些子节点可能是nodeA
或nodeB
节点使用
return 1
,一旦遇到nodeA
或nodeB
节点,就停止递归搜索一种解决办法是:
如果出于任何原因,您现在想要定义一个局部变量:
相关问题 更多 >
编程相关推荐