剑指树的镜像

二叉树的镜像

http://www.nowcoder.com/questionTerminal/a9d0ecbacef9410ca97463e4a5c83be7

递归,将左子树右子树进行交换,然后再去递归翻转左右子树

class Solution:
    def Mirror(self , pRoot ):
        # write code here
        if pRoot==None:
            return
        pRoot.left,pRoot.right=pRoot.right,pRoot.left
        self.Mirror(pRoot.left)
        self.Mirror(pRoot.right)
        return pRoot

BFS的方法

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pRoot TreeNode类 
# @return TreeNode类
#
import collections
class Solution:
    def Mirror(self , pRoot ):
        # write code here
        queue=collections.deque()
        if pRoot==None:
            return None
        queue.append(pRoot)
        while queue:
            size=len(queue)
            for i in range(size):
                root=queue.popleft()

                root.left,root.right=root.right,root.left

                if root.left:

                    queue.append(root.left)
                if root.right:

                   queue.append(root.right)
        return pRoot
全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
1
收藏
分享

全站热榜

更多

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务