【发布时间】:2020-10-05 23:43:13
【问题描述】:
我想编写方法mirror() 创建并返回二叉树,其中所有左子树都变为右子树,反之亦然。我试图用递归来做到这一点:
def mirror(self):
if self.left == None and self.right == None:
return
elif self.left == None and self.right != None:
t = self.right
self.right = self.left
self.left = t
self.left.mirror()
elif self.left != None and self.right == None:
t = self.right
self.right = self.left
self.left = t
self.right.mirror()
else:
t = self.right
self.right = self.left
self.left = t
self.left.mirror()
self.right.mirror()
但是我得到了输出None。为什么,以及如何解决?
【问题讨论】:
-
我在整个函数中只看到一个
return。如果你不告诉它,它怎么知道返回什么? -
还有那个
returnreturnsNone。除了None之外,您如何期待这个函数return? -
它不会返回一个新的反转树;它将原树反转到位。
标签: python oop recursion binary-tree