问题:
二叉树的镜像
我的代码-->不对,但是我没看出来哪里有误
例如:
[4,2,7,1,3,6,9],应输出[4,7,2,9,6,3,1]
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
root2=TreeNode(root.val)
self.copy(root,root2)
return root2
def copy(self,head,head2):
if not head or not head2:
return
head2.right=head.left
head2.left=head.right
self.copy(head.left,head2.right)
self.copy(head.right,head2.left)
此代码最终输出[4,7,2,6,6,1,1]
我觉得重复赋值了,但具体不知道什么时候发生的。于是改代码为:
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
root2=TreeNode(root.val)
self.copy(root,root2)
return root2
def copy(self,head,head2):
if not head or not head2:
return
if not head2.right:
head2.right=head.left
if not head2.left:
head2.left=head.right
self.copy(head.left,head2.right)
self.copy(head.right,head2.left)
输出[4,7,2,6,9,1,3]
还是不对的结果,求大家帮忙