二叉树——翻转二叉树

给你一棵二叉树的根节点 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  ZealousMclaren  阅读(11)  评论(0)    收藏  举报