226. 翻转二叉树

给你一棵二叉树的根节点 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 = []
输出:[]

提示:


  1. 确定递归函数的参数和返回值:输入一个结点,并返回该节点。
  2. 确定终止条件: 当结点为空时返回。
  3. 确定单层递归的逻辑:交换左右孩子。

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
/**

 * Definition for a binary tree node.

 * struct TreeNode {

 *     int val;

 *     TreeNode *left;

 *     TreeNode *right;

 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}

 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}

 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}

 * };

 */

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;

    }

};

上次更新 2025-04-08