给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
思考: 反转二叉树,第一时间想到的就是递归算法,使用递归算法对二叉树分别进行反转,然后将左右节点的值进行交换即可。
关键点:
递归算法的理解以及使用,其中递归算法精髓在于设计好执行逻辑,反复引用自身,可以实现
class Solution {
public:
TreeNode* invertTree(TreeNode* root)
{
if(root == NULL)
{
return NULL ;
}
TreeNode *temp = root->left;
root->left = invertTree(root->right);
root->right = invertTree(temp);
return root;
}
};