Invert a binary tree.
4
/ \
2 7
/ \ / \
1 3 6 9
to
4
/ \
7 2
/ \ / \
9 6 3 1
算法分析:可以用层序遍历的方法交换左右子树,也可以直接递归。
C语言版
struct TreeNode* invertTree(struct TreeNode* root) {
if(root)
{
struct TreeNode *temp = root->right;
root->right = invertTree(root->left);
root->left = invertTree(temp);
}
return root;
}
Python版
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if root:
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root