当前位置: 首页 > news >正文

python-leetcode 37.翻转二叉树

题目:

给定一颗二叉树的根节点root,翻转这棵二叉树,并返回根节点


方法一:递归

从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点root的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以root为根节点的整棵子树的翻转。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def invertTree(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: Optional[TreeNode]
        """
        if not root:
            return root
        left=self.invertTree(root.left)
        right=self.invertTree(root.right)
        root.left,root.right=right,left
        return root

时间复杂度:O(n)遍历二叉树中的每一个节点

空间复杂度:O(n)

源自力扣官方题解

相关文章:

  • Javascript网页设计实例:通过JS实现上传Markdown转化为脑图并下载脑图
  • 火语言RPA--Excel关闭保存文档
  • 【HarmonyOS Next】鸿蒙监听手机按键
  • 汇能感知的光谱相机/模块产品有哪些?
  • 【python】tkinter简要教程
  • oppo,汤臣倍健,康冠科技,高途教育25届春招内推
  • 记录一下windows11编译Openpose的过程
  • 使用VSCODE开发C语言程序
  • 【PLL】应用:时钟生成
  • 【项目日记】仿RabbitMQ实现消息队列 --- 模块设计
  • 【云安全】云原生-Docker(六)Docker API 未授权访问
  • unity学习49:寻路网格链接 offMeshLinks, 以及传送门效果
  • 使用FFmpeg将PCMA格式的WAV文件转换为16K采样率的PCM WAV文件
  • 基于SpringBoot实现的宠物领养系统平台功能一
  • JUC并发编程——Java线程(一)
  • 从线程池到负载均衡:高并发场景下的系统优化实战
  • 本地部署Anything LLM+Ollama+DeepSeek R1打造AI智能知识库教程
  • 【弹性计算】虚拟机云服务器
  • 嵌入式开发:天线(1):天线增益-dBi
  • C/C++子函数申请对应二维数组的动态内存传给主函数使用
  • 上海黄浦江挡潮闸工程建设指挥部成立,组成人员名单公布
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行
  • 一图看懂|印巴交火后,双方基地受损多少?
  • 不是10点!乌克兰官员称尚未就俄乌谈判开始时间达成一致
  • 全国人大常委会今年将初次审议检察公益诉讼法
  • 人民日报:从“轻微免罚”看涉企执法方式转变