博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】...
阅读量:6435 次
发布时间:2019-06-23

本文共 1577 字,大约阅读时间需要 5 分钟。

原题

  Given a binary tree, find its minimum depth. 

  The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 

题目大意

  给定一棵两叉树求树的最小深度。 

解题思路

  遍历法,对整个树进行遍历,找出最小的深度。 

代码实现

树结果定义

public class TreeNode {    int val;    TreeNode left;    TreeNode right;    TreeNode(int x) { val = x; }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

算法实现类

public class Solution {
private int min = Integer.MAX_VALUE; // 记录树的最小深度 private int cur = 0; // i当前处理的树的尝试 public int minDepth(TreeNode root) { depth(root); return min; } /** * 计算树的深度 * * @param node 当前结点 */ private void depth(TreeNode node) { if (node == null) { min = cur; return; } cur++; // 当前处理的层次加1 // 如果是叶节点,并且路径比记录的最小还小 if (node.left == null && node.right == null && cur < min) { min = cur; // 更新最小值 } // 处理左子树 if (node.left != null) { depth(node.left); } // 处理右子树 if (node.right != null) { depth(node.right); } cur--; // 还原 }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
/** * 计算树的深度 * * @param node 当前结点 */
private
void
depth
(TreeNode node) {
if
(node ==
null
) { min = cur;
return
; } cur++;
// 当前处理的层次加1
// 如果是叶节点,并且路径比记录的最小还小
if
(node.left ==
null
&& node.right ==
null
&& cur < min) { min = cur;
// 更新最小值
}
// 处理左子树
if
(node.left !=
null
) { depth(node.left); }
// 处理右子树
if
(node.right !=
null
) { depth(node.right); } cur--;
// 还原
}}

转载地址:http://owega.baihongyu.com/

你可能感兴趣的文章
聊聊Service(一)
查看>>
即将到来的 Android N 将具备这些新特性
查看>>
《善用佳软:高效能人士的软件应用之道》一2.6 小工具之计算器
查看>>
《C语言编程初学者指南》一1.9 本章小结
查看>>
《Spark大数据分析:核心概念、技术及实践》一3.5 API
查看>>
《“笨办法”学Python(第3版)》——习题3 数字和数学计算
查看>>
《无人机DIY》——4.2 项目1:MakerBeam机身
查看>>
阿里数据库内核月报:2015年11月
查看>>
swfheader 0.10 Released(已更正下载地址)
查看>>
SQL Server使用视图做权限控制
查看>>
深入浅出LVS:企业集群平台负载均衡的三种模式和算法实现
查看>>
twitter storm源码走读(二)
查看>>
jQuery学习笔记之DOM操作、事件绑定(2)
查看>>
写入指定长度的字节到文件
查看>>
删除数据表和清空数据表的内容(保存表结构)的SHELL脚本
查看>>
C# 视频监控系列(14):总结贴——VC++代码转成C#小结
查看>>
undefined与null的区别
查看>>
Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View...
查看>>
数据挖掘中的概念描述
查看>>
struts2 依赖注入boolean类型的属性时报错
查看>>