【剑指 Offer】剑指 Offer 27. 二叉树的镜像

这篇博客介绍了三种不同的Python方法来翻转二叉树,使其变为镜像结构。方法包括使用广度优先搜索(BFS)、递归访问节点以及迭代访问节点。这些方法都在内存和执行时间上有所不同,但都能有效地完成二叉树的翻转,并通过了所有测试用例。

题目
代码
执行用时:40 ms, 在所有 Python3 提交中击败了24.41% 的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了96.12% 的用户
通过测试用例:68 / 68

class Solution:
    def mirrorTree(self, root: TreeNode) -> TreeNode:
        if not root:return None
        queue=[root]
        while queue:
            node=queue.pop(0)
            if node.left:
                queue.append(node.left)
            if node.right:
                queue.append(node.right)
            node.left,node.right=node.right,node.left
        return root

【方法2】
执行用时:36 ms, 在所有 Python3 提交中击败了53.40% 的用户
内存消耗:14.8 MB, 在所有 Python3 提交中击败了94.87% 的用户
通过测试用例:68 / 68

class Solution:
    def visit(self,root):
        if not root:
            return None
        left=self.visit(root.right)
        right=self.visit(root.left)
        root.left=left
        root.right=right
        return root
        
    def mirrorTree(self, root: TreeNode) -> TreeNode:
        self.visit(root)
        return root

【方法3】
执行用时:32 ms, 在所有 Python3 提交中击败了77.70% 的用户
内存消耗:15 MB, 在所有 Python3 提交中击败了26.27% 的用户
通过测试用例:68 / 68

class Solution:
    def mirrorTree(self, root: TreeNode) -> TreeNode:
        if not root:
            return None
        left=self.mirrorTree(root.right)
        right=self.mirrorTree(root.left)
        root.left=left
        root.right=right
        return root
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值