翻转二叉树
难度简单1411收藏分享切换为英文接收动态反馈
给你一棵二叉树的根节点 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
我的代码:
/** * 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) { // 先交换左右 TreeNode *tmp = root->right; root->right = root->left; root->left = tmp; // 然后再左右交换 invertTree(root->left); invertTree(root->right); } return root; } };