【刷题笔记10.6】LeetCode:翻转二叉树

LeetCode:翻转二叉树

一、题目描述

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

二、分析

我们在做二叉树题目时候,第一想到的应该是用 递归 来解决。 仔细看下题目的 输入 和 输出,输出的左右子树的位置跟输入正好是相反的,于是我们可以递归的交换左右子树来完成这道题。

其实就是交换一下左右节点,然后再递归的交换左节点,右节点。

我们可以总结出递归的两个条件如下:

  • 终止条件:当前节点为 null 时返回
  • 交换当前节点的左右节点,再递归的交换当前节点的左节点,递归的交换当前节点的右节点

三、代码实现

java 复制代码
public class Deal13 {
    public TreeNode invertTree(TreeNode root) {
        //1、递归函数的终止条件,节点为null时返回
        if (root == null) {
            return null;
        }

        //2、下面三句是将当前节点的左右子树交换
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;

        //3.1、递归交换当前节点的 左子树
        invertTree(root.left);
        //3.2、递归交换当前节点的 右子树
        invertTree(root.right);

        //4、函数返回时就表示当前这个节点,以及它的左右子树都已经交换完成
        return root;
    }
}
相关推荐
想做小南娘,发现自己是女生喵5 小时前
第 2 章 顺序表和 vector
java·数据结构·算法
艾醒6 小时前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态
人工智能·算法
雪碧聊技术6 小时前
动态规划算法—01背包问题
算法·动态规划
bu_shuo6 小时前
c与cpp中的argc和argv
c语言·c++·算法
普贤莲花6 小时前
【2026年第29周---写于20260718】---整理,断舍离
程序人生·算法·生活
Reart7 小时前
Leetcode 674.最长连续递增序列 (719)
后端·算法
Reart7 小时前
Leetcode 300.最长递增子序列(719)
算法
可编程芯片开发7 小时前
VSG虚拟同步发电机simulink建模与仿真
算法
en.en..7 小时前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水7 小时前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法