• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
华东 博客
17年国科大博士毕业,曾就职于三星电子,清华博后,目前在某大模型创业公司工作,研究方向大模型、智能体 新浪博客: http://blog.sina.com.cn/u/2463286753
博客园    首页    新随笔    联系   管理    订阅  订阅
LeetCode Top100: 翻转二叉树(python)

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

实现:

以下是 Python代码实现:

class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        if root is None:
            return None
        
        # 交换左右子树
        root.left, root.right = root.right, root.left
        
        # 递归翻转左右子树
        self.invertTree(root.left)
        self.invertTree(root.right)
        
        return root

 以上代码使用了递归的思想,首先判断当前节点是否为空,如果为空则返回 None。否则,交换当前节点的左右子树,然后递归调用 invertTree 函数翻转左右子树。最后返回当前节点作为新的根节点。

 

posted on 2023-04-18 22:49  华东博客  阅读(72)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3