018 · Invert Binary Tree

algorithm
Published

May 20, 2026

Problem

给定一个二叉树的根节点 root

请将这棵二叉树翻转,并返回翻转后的根节点。

二叉树中的每个节点包含三个部分:

  • val:当前节点的值
  • left:指向左子节点的指针
  • right:指向右子节点的指针

翻转二叉树的意思是:把每个节点的左子树和右子树互换位置,整棵树左右镜像对称。

例如,原始的二叉树长这样:

        4
       / \
      2   7
     / \ / \
    1  3 6  9

翻转之后,应该变成:

        4
       / \
      7   2
     / \ / \
    9  6 3  1

可以看到,每一层的左右节点都被互换了。

Examples

示例 1

Input:  root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]

解释:根节点 4 的左右子树互换,每个子节点的左右子树也互换。

示例 2

Input:  root = [2,1,3]
Output: [2,3,1]

解释:只需把根节点 2 的左子节点 1 和右子节点 3 互换。

示例 3

Input:  root = []
Output: []

解释:空树翻转后仍然是空树。

Constraints

  • 树中节点的数量范围是 \([0, 100]\)
  • \(-100 \leq\) Node.val \(\leq 100\)