二叉树——翻转二叉树

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

翻转二叉树就是把每个节点的左右子树交换,递归实现非常简洁。

核心思路

  1. 根节点为空,直接返回
  2. 交换当前节点的左孩子和右孩子
  3. 递归处理左子树
  4. 递归处理右子树
  5. 最后返回根节点

完整代码实现如下:

class TreeNode {

int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
    this.val = val;
    this.left = left;
    this.right = right;
}

}

class Solution {

public TreeNode invertTree(TreeNode root) {
    // 递归终止条件:节点为空
    if (root == null) {
        return null;
    }
    
    // 交换左右子树
    TreeNode temp = root.left;
    root.left = root.right;
    root.right = temp;
    
    // 递归翻转左、右子树
    invertTree(root.left);
    invertTree(root.right);
    
    // 返回根节点
    return root;
}

}

posted @ 2026-04-13 16:03  AlexXuu  阅读(5)  评论(0)    收藏  举报