package tree;
/**
* 111. 二叉树的最小深度
* 给定一个二叉树,找出其最小深度。
*
* 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
*
* 说明:叶子节点是指没有子节点的节点。
*
* @author Tang
* @date 2021/7/15
*/
public class MinDepth {
/**
* 前序遍历
* 得左右子节点都是null才行
* @param root
* @return
*/
public int minDepth(TreeNode root) {
if(root == null){
return 0;
}
return preSearch(root, 0);
}
/**
* 前序遍历
* @param height 当前已有高度
* @param node
* @return 深度
*/
private int preSearch(TreeNode node, int height){
if(node == null){
return height;
}
height += 1;
if(node.left == null){
return preSearch(node.right, height);
}
if(node.right == null){
return preSearch(node.left, height);
}
int left = preSearch(node.left, height);
int right = preSearch(node.right, height);
return Math.min(left, right);
}
public static void main(String[] args) {
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
TreeNode node6 = new TreeNode(6);
node1.left = node2;
node1.right = node3;
node2.right = node5;
node2.left = node4;
System.out.println(new MinDepth().minDepth(node1));
}
}
Leecode no.111 二叉树的最小深度
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【数据结构】二叉树的存储结构
【数据结构】第五章——树与二叉树详细介绍二叉树的存储结构……
二叉树 数据结构 C语言 -
【LeetCode 111】 二叉树的最小深度
题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
二叉树 leetcode 数据结构 dfs 子节点 -
【LeetCode-111 | 二叉树的最小深度】
逆风的方向,更适合飞翔~
#include 子树 递归 -
Java Injectmocks
初识 Mockito 这个测试框架后,我们要使用 Mock 的属性创建一个被测试类实例时,大概会下面这么纯手工来打造。假定类 UserService 有一个属性 UserDao userDao, 需要构造 UserService 实例时 Mock 内部状态UserDao userDao = Mockito.mock(UserDao.cla
Java Injectmocks java inject例子 System 构造函数 Test