cuilllinn 2022-03-28 22:22 采纳率: 100%
浏览 14
已结题

力扣 二叉树的镜像,不知道问题出在哪里

问题:
二叉树的镜像
我的代码-->不对,但是我没看出来哪里有误
例如:
[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]
还是不对的结果,求大家帮忙

  • 写回答

1条回答 默认 最新

  • zp_diandiandidi 2022-03-29 08:18
    关注

    交换不要直接赋值,要使用类似 int 型交换值的方式如:

    int a = 1, b = 2, tmp;
    
    tmp = a;
    a = b;
    b = tmp;
    

    给你一个我的答案:

    class Solution(object):
        def mirrorTree(self, root):
            """
            :type root: TreeNode
            :rtype: TreeNode
            """
            if not root:
                return None
            
            root.left = self.mirrorTree(root.left)
            root.right = self.mirrorTree(root.right)
            tmp = root.left
            root.left = root.right
            root.right = tmp
    
            return root
    

    望采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测