二叉树 | 翻转二叉树

问题

问题链接
在这里插入图片描述

解题思路

采用递归的思路

  • 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;
    }
};
发布了862 篇原创文章 · 获赞 270 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/SongBai1997/article/details/104729088