LeetCode 111 : Minimum Depth of Binary Tree (Java)
2015-12-01 08:19
387 查看
解题思路:找最小要比找最大复杂,因为递归对于最大来说如果一个节点只有左子树或右子树,它无需额外考虑,仍可以一时同仁对左右子树调用递归,只不过对null的子树返回的是0,而在比较取较大者时会自动放弃较小的0值。但对于最小来说,比较的时候是取较小者,不能对null的子树返回0,否则取较小的时候会取该子树,显然这样不符合要求,只有叶子节点才可以返回0。针对这种情况有两种解决方案,一种是分情况讨论,另一种是对于null的子树返回一个很大的数。以下代码用的是第一种方案。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int minDepth(TreeNode root) { if(root == null) { return 0; } else if(root.right == null && root.left == null) { return 1; } else if(root.left == null) { return minDepth(root.right) + 1; } else if(root.right == null) { return minDepth(root.left) + 1; } else { int l = minDepth(root.left); int r = minDepth(root.right); return l > r ? r + 1 : l + 1; } } }
相关文章推荐
- 命令行快速技巧:如何定位一个文件
- jquery+CSS实现的多级竖向展开树形TRee菜单效果
- cmd tree命令 以树形格式罗列文件
- 推荐8款jQuery轻量级树形Tree插件
- tree 以树形格式罗列文件
- EasyUI Tree+Asp.net实现权限树或目录树导航的简单实例
- E3 tree 1.6在Firefox下显示问题的修复方法
- js树形控件脚本代码
- swing中Tree与滚动条用法实例分析
- Spark Decision Tree
- 带check的treeView
- extjs 4 treepanel locked and expand
- JQuery EasyUI 实现tree的右键菜单
- flex tree 的两个小技巧
- Tree.log
- gnome文件管理器(nautilus)树形结构文件窗口 多窗口
- 排序binary tree
- python递归实现Easyui combotree树
- 使用autoconf、automake进行外部编译
- 模拟windows系统自带工具Tree