二叉树的镜像

题目描述

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

输入描述:

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

解答

# coding:utf-8

class ListNode:
    def __init__(self,x, left=None, right=None):
        self.val = x
        self.left = left
        self.right = right

class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        # write code here
        nodeList = [root]
        while nodeList:
            curNode = nodeList.pop(0)
            if not curNode:
                return None
            if curNode.left:
                nodeList.append(curNode.left)
            if curNode.right:
                nodeList.append(curNode.right)
            curNode.left, curNode.right = curNode.right, curNode.left
        return root

a = ListNode('a')
b = ListNode('b')
c = ListNode('c')
d = ListNode('d')
f = ListNode('a')
e = ListNode('e')

f.left = b
f.right = e
b.left = c
c.left = d
e.right = a

ret = Solution().Mirror(f)
print ret.left.val
print ret.right.val

结束!

posted @ 2020-09-28 20:11  aaronthon  阅读(114)  评论(0编辑  收藏  举报