剑指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
发布了44 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44151089/article/details/104471346