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

226.翻转二叉树

题目:

给你一棵二叉树的根节点 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

解题思路:

使用递归的思想,每次翻转当前节点的左右子树

使用迭代的思想,利用队列来存储每一层的节点,交换当前节点的左右节点

递归代码:

class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return None
        left = self.invertTree(root.left)
        right = self.invertTree(root.right)
        root.left = right
        root.right = left
        return root

迭代代码:

from queue import Queue
# 使用迭代的方法翻转左右子树
class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return None
        re_queue = Queue()
        re_queue.put(root)
        while not re_queue.empty():
            current = re_queue.get()
            current.left, current.right = current.right, current.left
            if current.left:
                re_queue.put(current.left)
            if current.right:
                re_queue.put(current.right)
        return root

相关文章:

  • ubuntu20.04 修改输入法设置后 界面卡死终端乱码 解决方法
  • 23中设计模式-迭代器(Iterator)设计模式
  • Netty源码—Pipeline和Handler(二)
  • Day39 | 724. 寻找数组的中心下标、34. 在排序数组中查找元素的第一个和最后一个位置、922. 按奇偶排序数组 II、35. 搜索插入位置
  • 如何用腾讯云建站做好一个多语言的建筑工程网站?海外用户访问量提升3倍!分享我的经验
  • 加新题了,MySQL 8.0 OCP 认证考试 题库更新
  • 通信系统的性能指标
  • MySql INDEX
  • Python:进程池,同步和异步,进程池通信示例
  • 集星獭 | 平滑适配多系统打通商管业财数据脉络
  • Java动态生成Word终极指南:poi-tl与Aspose.Words性能对比及选型建议
  • 如何避免测试数据准备不充分或不可复用
  • 第二章 EXI协议原理与实现--9.7 cbExiGen库bug及改进
  • Android adb自身调试log开关
  • HashMap的位操作是什么?HashSet 的 contains 方法复杂度是多少?红黑树简单讲一下?
  • 基于Ebay拍卖网站成交价格的影响因素分析
  • 【TI MSPM0】PWM学习
  • Android 12.0 WiFi连接默认设置静态IP地址功能实现
  • ALTER TABLE SHRINK SPACE及MOVE的区别与适用场景
  • 如何突破MacBook苹果电脑Cursor限制:免费版的解决方法
  • 广告设计软件有哪些/seo查询软件
  • 做网站要买什么服务器/今天重大新闻头条
  • 住房和城乡建设部网站打不开/yahoo引擎入口
  • 河南免费网站建设公司/网址关键词查询
  • 英文购物网站模板/自学seo大概需要多久
  • 在线营销型网站制作/免费网页代码大全