题目:
算法思想:递归处理,注意左右子树交换的时候要引入中间变量,分为先序遍历和后序遍历两个版本,后序遍历效果要更好。
代码:
先序遍历版本
TreeNode* invertTree(TreeNode* root) {
if(root == NULL)
return root;
TreeNode *tmp = root->left;
root->left = invertTree(root->right);
root->right = invertTree(tmp);
return root;
}
后序遍历 击败100%
TreeNode* invertTree(TreeNode* root) {
if(root == NULL)
return root;
invertTree(root->left);
invertTree(root->right);
TreeNode *tmp = root->left;
root->left = root->right;
root->right = tmp;
return root;
}