剑指树的镜像

二叉树的镜像

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
全部评论

相关推荐

吴offer选手:我卡在笔试才是最好笑的,甚至没给我发过笔试链接
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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