镜面二叉树
明确一棵二叉树是不是对称的:
这棵树的左右子树必须同时是对称的
根据镜面二叉树的定义,其实思路就出来了,我们只需要将每个小子树的左右两个节点结构进行对换,最后一步就是左右两课大子树进行交换,整个镜像二叉树就出来了。
一定要理解清楚什么是镜面二叉树,做这道题就相对简单了
Class TreeNode(object):
def __init__(self,value):
self.val=value
self.left=None
self.right=None
Class Solution(object):
def mirrorTree(self,root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
def helper(root):
if not root: return root
left=helper(root.left)
right=helper(root.right)
root.left,root.right=right.left
return root
return helper(root)
其实好多时候把程序自己在纸上画一遍或走一遍对理解很有帮助