问题
解题思路
采用递归的思路
- root为NULL,返回NULL
- root的左孩子指向翻转后的root的右子树
- root的右孩子指向翻转后的root的左子树
C++代码
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(!root) return NULL;
TreeNode *tmp = root->left;
root->left = invertTree(root->right);//对右子树进行反转
root->right = invertTree(tmp);//对左子树进行反转
return root;
}
};