DFS
Base Case root が Null は None を返す。
Tree を反転して値が同じなら True を返すので、
children node の値を swap して同じか確かめる。
Time complexity: O(n)
Mem complexity: O(n)
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
tmp = root.left
root.left = root.right
root.right = tmp
self.invertTree(root.left)
self.invertTree(root.right)
return root