首页 > 其他分享 >代码随想录Day21

代码随想录Day21

时间:2022-11-10 00:33:17浏览次数:39  
标签:node 遍历 return int 随想录 代码 Day21 NULL 节点

LeetCode111.给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7],

 

 最小深度为2

前序遍历和后序遍历都可以做。 

后序遍历,从下往上遍历求高度,不断地往上返回到根节点做+1操作。

整体的逻辑代码:

class Solution {
public:
    int getDepth(TreeNode* node) {
        if (node == NULL) return 0;
        int leftDepth = getDepth(node->left);           // 左
        int rightDepth = getDepth(node->right);         // 右
                                                        // 中
        // 当一个左子树为空,右不为空,这时并不是最低点   //取右子树的最小高度
        if (node->left == NULL && node->right != NULL) { 
            return 1 + rightDepth;
        }   
        // 当一个右子树为空,左不为空,这时并不是最低点   //取左子树最小高度
        if (node->left != NULL && node->right == NULL) { 
            return 1 + leftDepth;
        }
        int result = 1 + min(leftDepth, rightDepth);
        return result;
    }

    int minDepth(TreeNode* root) {
        return getDepth(root);
    }
};

左右中。  终止条件是当前节点为空。否则,一直往下遍历遍历到最下面一层,然后往回返值。  只要还有叶子节点存在,就仍要进行遍历操作。

最小值的计算是去左右深度的最小值+1

 

标签:node,遍历,return,int,随想录,代码,Day21,NULL,节点
From: https://www.cnblogs.com/dwj-ngu/p/16875706.html

相关文章

  • [杂记] 一些我自己的代码规范
    一些我自己的代码规范写代码的时候,代码规范确实是一个不大不小的问题。为了防止代码变成“屎山”,养成一个好的代码习惯还是十分重要的。本文就简单记录一些章鱼自己的代......
  • Java代码块运行顺序细节阐述
    以下这个例子非常好的阐述了父子类同时存在时静态代码块/静态变量初始化,普通代码块/普通成员变量初始化,构造器之间的具体运行顺序。注意,在构造器开头,我们可以看作按顺序隐......
  • 爱心代码Html
    1<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">2<HTML>3<HEAD>4<TITLE>Love</TITLE>5<METANAME="Generator"CONTENT="Ed......
  • 面试:排序算法代码实现
    目录冒泡排序插入排序希尔排序选择排序堆排序冒泡排序/*====================冒泡排序=======================*/voidbubble_sort(intnums[],intn){for(int......
  • 爱心代码 HTML/CSS3
     <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>Love</TITLE><METANAME="Generator"CONTENT="EditPlus"><METANAME="Author"......
  • AIRIOT物联网低代码平台如何配置MQTT驱动?
    MQTT驱动配置简介MQTT全称为消息队列遥测传输(英语:MessageQueuingTelemetryTransport),是ISO标准(ISO/IECPRF20922)下基于发布(Publish)/订阅(Subscribe)范式的消息协......
  • 花式浪漫爱心代码,爱心树来啦
    爱心代码如下:#coding=gbk"""作者:向阳逐梦@时间:2022/11/0921:20"""importturtleimportrandomdeflove(x,y):#在(x,y)处画爱心lalalalv=turtle.Turtle()......
  • 《代码大全》读书笔记1
    之所以阅读这本书,是想在阅读风格较为轻松的《程序员修炼之道》之后阅读一本更细致、更严肃的“进阶”读物。  *第一部分打好基础 第一章欢迎进入软件构建的世界......
  • 《代码大全2》读书笔记2
    第五章软件构建中的设计 > 设计的限制:设计是一个“险恶”的问题:只有通过解决或至少部分解决,才能明确地定义它。设计中会有很多错误和修正的过程。设计有诸多限制,要......
  • 《代码大全2》读书笔记六
    第十九章一般控制问题19.1布尔表达式【回顾】在读书笔记二、读书笔记三中有关于变量名与布尔变量的讨论,其中提到:布尔变量名应该使用显然有两个状态的名字,如doneok;可......