题目描述
Given the root of a binary tree, invert the tree, and return its root.
Example 1:
Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]
Example 2:
Input: root = [2,1,3]
Output: [2,3,1]
Example 3:
Input: root = [ ]
Output: [ ]
Constrains:
- The number of nodes in the trees is in the range [0,100]
- − 100 < = N o d e . v a l < = 100 -100 <= Node.val<=100 −100<=Node.val<=100
解题思路
采用递归方法。因为逆转树需要将每一颗子树都逆转,递归到子树为空,则返回空,不为空则交换叶节点的值。
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(root == nullptr)
return root;
TreeNode* left = invertTree(root->left);
TreeNode* right = invertTree(root->right);
root->left = right;
root->right = left;
return root;
}
};