题目描述(难度简单)

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

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

示例:

给定二叉树 [3,9,20,null,null,15,7],3/ 9  20/  15   7
返回它的最小深度  2.

解题思路

遇到叶子节点不递归,否则接着往子树递归,每次递归层数加1。

代码如下

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:int minDepth(TreeNode* root) {if(root==NULL)//边界情况return 0;int level=1;if(root->left==NULL && root->right==NULL)//左右子树均为空return level;if(root->left==NULL)return level + minDepth(root->right);//左子树为空if(root->right==NULL)return level + minDepth(root->left);//右子树为空return level + min(minDepth(root->left), minDepth(root->right));//左右子树均不空}
};

提交结果:

利用二叉链表创建二叉树_利用递归解LeetCode第111题:二叉树的最小深度相关推荐

  1. 数据结构--二叉树--路径 假设二叉树采用二叉链表方式存储, root指向根结点,node 指向二叉树中的一个结点, 编写函数 path,计算root到 node 之间的路径,(该路径包括root结

    假设二叉树采用二叉链表方式存储, root指向根结点,node 指向二叉树中的一个结点, 编写函数 path,计算root到 node 之间的路径,(该路径包括root结点和 node 结点).pat ...

  2. 二叉链表-创建、遍历(前序、中序、后序、非递归、层次)、复制、计算深度、结点数、销毁(C语言)

    目录 二叉树的定义 二叉树的性质 二叉链表的基本操作 二叉链表的结构定义 前序遍历创建 前序.中序.后序遍历 中序遍历的非递归算法(栈) 层次遍历(队列) 复制二叉树 计算深度 计算总结点数与叶子结点 ...

  3. C#实现二叉树--二叉链表结构

    二叉树的简单介绍 关于二叉树的介绍请看这里 : 二叉树的简单介绍 http://www.cnblogs.com/JiYF/p/7048785.html 二叉链表存储结构: 二叉树的链式存储结构是指,用 ...

  4. 数据结构-二叉链表的结构与实现

    目录 一.引言 二.什么是二叉链表 三.二叉链表的结构 四.二叉链表的实现 1. 创建二叉链表 2. 遍历二叉链表 3. 插入节点 4. 删除节点 五.应用场景 六.总结 七.代码示例 一.引言 数据 ...

  5. 数据结构-二叉链表存储的二叉树(利用先序遍历)

    树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用.对于每一个结点至多只有两课子树的一类树,称其为二叉树.二叉树的链式存储结构是一类重要的数据结构,其形式定义如下: 而二叉树的前序.中序遍历 ...

  6. C语言——二叉树的创建(二叉链表)

    1. 引用 递归构造二叉树的过程中用到了 C++ 语言中的引用 &,引用 & 是变量别名的意思,除了变量名不一样,其他的都是指同一个东西.传参的方式有两种:一种是传值:一种是传址.引用 ...

  7. 二叉树的链式存储结构--二叉链表

    1 二叉树的链式存储结构 //二叉链表的结点结构定义typedef int TElemType; typedef struct BiTNode {TElemType data;struct BiTNo ...

  8. 数据结构C++边学边做--二叉树的实现(二叉链表实现遍历操作)

    二叉树的实现(二叉链表实现遍历操作) 一.二叉树的遍历 二.二叉链表的数据结构定义 三.二叉链表类实现 1.类声明 2.BiTree->构造函数:Create创建二叉链表 3.~BiTree-& ...

  9. 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...

    已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法 #define N 10 //二叉树节点的个数 char postorderstr[]={};//后序序列 char i ...

最新文章

  1. linux定时任务定向到空,Linux 定时任务下 /dev/null 21 相关知识说明
  2. 计算机视觉方向简介 | 视觉惯性里程计(VIO)
  3. impala jdbc驱动执行impala sql的一个坑(不支持多行sql)
  4. 【通知】如何让你的2020年秋招CV项目经历更加硬核,可深入学习有三秋季划4大领域32个方向...
  5. module_init 详解
  6. 喜讯 | 国际智慧城市大会巨杉喜获两项大奖
  7. 工程量计算专用工具-支持灌注桩、搅拌桩、格构柱
  8. jquery控制下的video视频播放
  9. 解决:windows电脑连接iphone手机热点,iphone锁屏后热点会自动断开
  10. 用大数据把电视观众“挖”出来
  11. 中国科学院大学重庆学院继续教育学院学前教育专业
  12. 【VUE】vue实现登录滑动拼图验证的两种方法,纯前端组件验证以及前后端同时验证
  13. Flutter编程之BoxDecoration用法详解
  14. 以图搜图服务快速搭建
  15. 前端程序员用css动画给女朋友一个惊喜
  16. 6-4 输出月份英文名 (15分)
  17. Mozilla 即谋智人
  18. 【每日一篇】NIO学习【二】什么是Buffer
  19. 日常常用英文单词整理
  20. 从盗亦有道看盗道,商道和师道

热门文章

  1. 论ARMv7 Thumb-2指令集的性能(含Thumb指令集介绍)【转载】
  2. C++引用计数(reference counting)技术简介(3)
  3. C++赋值操作符重载
  4. oracle-只读数据文件的备份与恢复
  5. ubuntu16.04 内核源码编译
  6. 洛谷 3833 SHOI 2012 魔法树
  7. 拉格朗日插值编程实现
  8. 深度学习开源项目学习
  9. Linux之ls命令
  10. 在线文本去重统计工具