题目:

算法思想:递归处理,注意左右子树交换的时候要引入中间变量,分为先序遍历和后序遍历两个版本,后序遍历效果要更好。
代码:
先序遍历版本
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;
}
本文介绍了一种用于翻转二叉树的算法,通过递归处理,实现了左右子树的交换。文章提供了两种版本的代码实现:先序遍历和后序遍历,其中后序遍历的效果更佳。
312

被折叠的 条评论
为什么被折叠?



