给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
示例 1:

**输入:**root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
示例 2:

**输入:**root = [2,1,3]
输出:[2,3,1]
示例 3:
**输入:**root = []
输出:[]
提示:
- 树中节点数目范围在
[0, 100] 内
-100 <= Node.val <= 100
- 确定递归函数的参数和返回值:输入一个结点,并返回该节点。
- 确定终止条件: 当结点为空时返回。
- 确定单层递归的逻辑:交换左右孩子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(root == nullptr) return root;
TreeNode *tmp;
tmp = root -> left;
root -> left = root -> right;
root -> right = tmp;
invertTree(root -> right);
invertTree(root -> left);
return root;
}
};
|