剑指Offer(Python多种思路实现):二叉树的镜像

剑指Offer(Python多种思路实现):二叉树的镜像

面试27题:

题目:二叉树的镜像

题:操作给定的二叉树,将其变换为源二叉树的镜像。

输入描述:

二叉树的镜像定义:源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5

解题思路一:递归

class Solution:
    def Mirror(self, root):
        # write code here
        if not root:
            return
        if not root.left and not root.right:
            return 
        pTemp=root.left
        root.left=root.right
        root.right=pTemp
        
        if root.left:
            self.Mirror(root.left)
        if root.right:
            self.Mirror(root.right)

解题思路二:迭代

def Mirror(self, root):
    stack = root and [root]
    while stack:
        n = stack.pop()
        if n:
            n.left, n.right = n.right, n.left
            stack += n.right, n.left

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值