leetCode 226.翻转二叉树

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

226. 翻转二叉树 - 力扣(LeetCode)


示例 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 = []
输出:[]

C++代码:

cpp 复制代码
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root==nullptr) return nullptr;
        TreeNode* left = invertTree(root->left);
        TreeNode* right = invertTree(root->right);
        TreeNode* tmp=left;
        root->left=right;
        root->right=tmp;
        return root;
    }
};
cpp 复制代码
TreeNode* tmp=left;
root->left=right;
root->right=tmp;

也可以简洁写成:swap(root->left,root->right);

Python代码:

python 复制代码
class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return root
        left = self.invertTree(root.left)
        right = self.invertTree(root.right)
        tmp = left
        root.left = right
        root.right = tmp
        return root

# 复杂度分析:
# 时间复杂度:O(N)
# 空间复杂度:O(N)
cpp 复制代码
tmp = left
root.left = right
root.right = tmp

也可以简洁写成:root.left,root.right = right,left

相关推荐
AI科技星4 分钟前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
参.商.21 分钟前
【Day41】143. 重排链表
leetcode·golang
条tiao条1 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名1 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
zzh940771 小时前
Gemini 3.1 Pro 硬核推理优化剖析:思维织锦、动态计算与国内实测
算法
2301_807367191 小时前
C++中的解释器模式变体
开发语言·c++·算法
愣头不青2 小时前
617.合并二叉树
java·算法
MIUMIUKK2 小时前
双指针三大例题
算法
灵感__idea2 小时前
Hello 算法:复杂问题的应对策略
前端·javascript·算法
2301_819414303 小时前
C++与区块链智能合约
开发语言·c++·算法