【刷题笔记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;
    }
}
相关推荐
雍凉明月夜12 小时前
深度学习网络笔记Ⅳ(Transformer + VIT)
笔记·深度学习·transformer
地平线开发者13 小时前
征程 6 | cgroup sample
算法·自动驾驶
做cv的小昊13 小时前
【TJU】信息检索与分析课程笔记和练习(7)数据库检索—Ei
数据库·笔记·学习·全文检索
Chris_121913 小时前
Halcon学习笔记-Day6:工业视觉高级技术应用与实战项目
笔记·学习·halcon
尋有緣14 小时前
力扣1355-活动参与者
大数据·数据库·leetcode·oracle·数据库开发
姓蔡小朋友14 小时前
算法-滑动窗口
算法
君义_noip14 小时前
信息学奥赛一本通 2134:【25CSPS提高组】道路修复 | 洛谷 P14362 [CSP-S 2025] 道路修复
c++·算法·图论·信息学奥赛·csp-s
kaikaile199514 小时前
基于拥挤距离的多目标粒子群优化算法(MO-PSO-CD)详解
数据结构·算法
不忘不弃14 小时前
求两组数的平均值
数据结构·算法