首页 > 代码库 > [LeetCode][Java] Minimum Depth of Binary Tree
[LeetCode][Java] Minimum Depth of Binary Tree
题目:
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.
题意:
给定一棵二叉树。返回它的最小高度。
最小高度是指从根节点到近期的叶子节点的最短路径中的节点的数目。
算法分析:
* 借助堆
* 类似《Binary Tree Level Order Traversal》中的算法
* 出现下一层无自带的情况,马上退出,返回该层的层数
AC代码:
/** * 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) { int index=0; boolean flag=false; ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> list= new ArrayList<Integer>(); LinkedList<TreeNode> que = new LinkedList<TreeNode>(); if (root==null) return 0; que.add(root); while(que!=null) { TreeNode tem; int size=que.size(); list.clear(); for(int i=0;i<size;i++) { tem=que.poll(); list.add(tem.val); if(tem.left==null&&tem.right==null) { flag=true;//仅仅要出现父节点无子节点的情况。就直接跳出,统计size break; } if(tem.left!=null) que.add(tem.left); if(tem.right!=null) que.add(tem.right); } res.add(new ArrayList<Integer>(list)); if(flag) return res.size(); else index=res.size(); } return index; } }
[LeetCode][Java] Minimum Depth of Binary Tree
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。