226. 翻转二叉树

题目

226. 翻转二叉树(简单)

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

示例 1:

输入:

[4,2,7,1,3,6,9]

输出:

[4,7,2,9,6,3,1]

示例 2:

输入:

[2,1,3]

输出:

[2,3,1]

示例 3:

输入:

[]

输出:

[]

提示:

  • 树中节点数目范围在 [0, 100]
  • -100 <= Node.val <= 100

思路

递归交换:对每个节点,先递归翻转左右子树,再交换 root.leftroot.right,返回 root。空节点直接返回。

代码

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

226. 翻转二叉树
https://mingsm17518.github.io/2026/09/15/刷题笔记/Hot100/226. 翻转二叉树/
作者
Ming
发布于
2026年9月15日
许可协议