剑指树的镜像
二叉树的镜像
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