【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
2015-08-11 07:37
1006 查看
【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
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; } }
算法实现类
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--; // 还原 } }
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。特别说明
欢迎转载,转载请注明出处【/article/1343383.html】
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【110-Balanced Binary Tree(平衡二叉树)】
- 黑马程序员——学习日记之反射
- 黑马程序员——学习日记之IO流
- 黑马程序员——学习日记之部分类概述
- 黑马程序员——学习日记之多线程
- 黑马程序员——学习日记之泛型和集合框架工具类
- 黑马程序员——学习日记之内部类 异常
- 黑马程序员——学习日记之面向对象特征
- 黑马程序员——学习日记之面向对象基础
- 黑马程序员——学习日记之控制语句练习
- 黑马程序员——学习日记之Java基础概述
- 程序员如何改掉晚睡习惯?
- 当好程序员的第一步
- 从一道面试题来认识java类加载时机与过程
- 程序员怎么一步步提高自己
- Java笔试面试题005
- 轻松搞定面试中的二叉树题目
- 一些面试题目的总结
- 黑马程序员 oc随机 分类与延展
- 面试中经常出现的算法1(整理)