给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]
示例 2:
输入:root = [2,1,3] 输出:[2,3,1]
示例 3:
输入:root = [] 输出:[]
思路:翻转这棵二叉树,可以在层序遍历的基础上,每遍历到一个根结点,用temp1和temp2分别记录下它的左右子树,然后进行翻转,最后返回root即可。
代码(python):
class Solution(object):
def invertTree(self, root):
if not root:
return None
deque = collections.deque([root])
while deque:
cur = deque.popleft()
if cur.left:
deque.append(cur.left)
if cur.right:
deque.append(cur.right)
temp1 = cur.left
temp2 = cur.right
cur.right = temp1 #反转左右子树
cur.left = temp2
return root