Skip to content

代码随想录 二叉树:226. 翻转二叉树

题目描述

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

题目链接:https://leetcode.cn/problems/invert-binary-tree

文章讲解:https://programmercarl.com/0226.翻转二叉树.html

思路

翻转整个二叉树就是对每个子树进行翻转,就是对每个节点做左右子节点的交换。

我们需要遍历整个二叉树,遍历到每个节点时交换他们的子节点。

什么遍历顺序?

前序、后序、层序都可以。

代码实现

C++
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root == nullptr) return nullptr;
        swap(root->left, root->right);
        invertTree(root->left);
        invertTree(root->right);
    }
};