首页 > 其他分享 >Day14|第六章 二叉树 part02| 226.翻转二叉树| 101. 对称二叉树| 104.二叉树的最大深度|111.二叉树的最小深度

Day14|第六章 二叉树 part02| 226.翻转二叉树| 101. 对称二叉树| 104.二叉树的最大深度|111.二叉树的最小深度

时间:2024-09-03 17:19:02浏览次数:9  
标签:right temp part02 que 二叉树 深度 null root

226.翻转二叉树(递归只能前序或者后序,中序不行)

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null) return null;
        swap(root);
        invertTree(root.left);
        invertTree(root.right);
        //swap(root);
        return root;
    }
    public void swap(TreeNode root){
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
    }
}

 

01. 对称二叉树:先跳过

 

104.二叉树的最大深度

class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null) return 0;
        Queue<TreeNode> que = new LinkedList<>();
        int depth = 0;
        que.offer(root);
        while(!que.isEmpty()){
            int size = que.size();
            for(int i = 0; i < size; i++){
                TreeNode temp = que.poll();
                if(temp.left != null){
                    que.offer(temp.left);
                }
                if(temp.right != null){
                    que.offer(temp.right);
                }
            }
            //while 循环一次+1
            depth++;
        }
        return depth;
    }
}

 

111.二叉树的最小深度: 如果一个节点左,右都是空就是最小深度

class Solution {
    public int minDepth(TreeNode root) {
        if(root == null) return 0;
        Queue<TreeNode> que = new LinkedList<>();
        int depth = 0;
        que.offer(root);
        while(!que.isEmpty()){
            //如果左右都为空就返回。
            int size = que.size();
            depth++;
            for(int i = 0; i < size; i++){
                TreeNode temp = que.poll();
                if(temp.left == null && temp.right == null){
                    return depth;
                }
                if(temp.left != null){
                    que.offer(temp.left);
                }
                if(temp.right != null){
                    que.offer(temp.right);
                }
            }
        }
        return depth;
    }
}

 

标签:right,temp,part02,que,二叉树,深度,null,root
From: https://www.cnblogs.com/hewx/p/18394968

相关文章

  • Vue3源码解析,打造自己的Vue3框架,实现技术深度与思维
    Vue3源码解析与打造自己的Vue3框架:‌技术深度与思维实践引言Vue.js作为当前最流行的前端框架之一,‌其不断迭代和更新推动了前端技术的快速发展。‌Vue3作为Vue.js的下一代主要版本,‌在性能、‌可维护性和开发体验方面进行了重大改进。‌本文将通过对Vue3源码的深入解析,‌探讨......
  • python 数据分析 损失数值 如何放到csv中呢 人工智能 深度神经网络,Pytorch ,tensorflo
    损失数值如何放到csv中呢 在Python中,使用`csv`模块将数据写入CSV文件是一种常见的操作。从你提供的代码片段来看,你想要将损失数值写入名为`middle_losse.csv`的文件中。但是,你提供的代码片段中存在一些需要修改的地方,以确保数据能够正确地写入CSV文件。首先,`csv.writer`对象的`wr......
  • 述FunsorFunsor是一个类似张量的函数和分布库。概率规划的泛函张量获取系统描述 ppl,p
    项目描述FunsorFunsor是一个类似张量的函数和分布库。看见概率规划的泛函张量获取系统描述。安装使用pip安装:Funsor支持Python3.7+。pipinstallfunsor从源安装:[email protected]:pyro-ppl/funsor.gitcdfunsorgitcheckoutmasterpipinstall.使用funsorFunsor......
  • 算法与数据结构——二叉树数组表示
    二叉树数组表示在链表表示下,二叉树的存储单元为节点TreeNode,节点之间通过指针相连接。同前面的队列或栈,二叉树同样可以使用数组来表示。表示完美二叉树给定一棵完美二叉树,我们将所有节点按照层序遍历的顺序存储在一个数组中,则每个节点都对应唯一的数组索引。按照层序遍历的特......
  • “少即是多” 的践行:动态深度神经网络在短期股票预测的 AI 决策
    作者:老余捞鱼原创不易,转载请标明出处及原作者。写在前面的话:    本文来自PlotinusAssetManagement,介绍了一种创新的多智能体深度学习方法(ModelA),该方法应用于基于美国S&P500指数的期货市场交易。与长短期记忆网络(LSTM)、随机森林和梯度提升树等传统机器学习方......
  • Datawhale X 李宏毅苹果书AI夏令营深度学习入门(三)
    一.实践方法论(一)模型偏差模型偏差可能会影响模型训练。若模型过于简单,一个有未知参数的函数代θ1得到一个函数fθ1(x),同理可得到另一个函数fθ2(x),把所有的函数集合起来得到一个函数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不在模型可以描......
  • 深度学习入门篇Task3#Datawhale X 李宏毅苹果书 AI夏令营
    第二章实践方法论2.1模型偏差模型过于简单导致未拟合重新设计模型增加特征2.2优化问题梯度下降优化的不够,没找到最优参数针在海里,大海捞针,但是方法不给力建议:先使用简单的线性模型或者是SVR测试一下,一般这些模型不会优化不到位训练数据损失突然不再降低或者......
  • 大数据新视界--大数据大厂之大数据时代的璀璨导航星:Eureka 原理与实践深度探秘
           ......
  • 深度学习环境安装与验证指南
    目录1.项目背景2.系统与软件版本2.1操作系统与硬件2.2软件版本2.3对应版本3.环境配置步骤3.1安装Anaconda3.2创建虚拟环境3.3安装CUDA和cuDNN3.3.1安装CUDA11.83.3.2安装cuDNN8.63.3.3验证CUDA和cuDNN安装3.4安装TensorFlow3.4.1安装......
  • 《深度学习》OpenCV 图像边缘检测 算法解析及代码演示
    目录一、图像边缘检测1、什么是边缘检测2、常用的边缘检测算法        1)Sobel算子    2)Scharr算子        3)Canny边缘检测算法        4)Laplacian算子3、边缘检测流程        1)预处理        2)计算梯度     ......