您的位置:首页 > 其它

111. Minimum Depth of Binary Tree

2016-06-09 22:36 211 查看
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.

BFS层次遍历吧。找到第一个叶子节点,返回深度即可。

ArrayDeque<TreeNode> deque;
ArrayDeque<Integer> deepdeq;
public int minDepth(TreeNode root)
{
if(root==null)
return 0;
deque=new ArrayDeque<>();
deepdeq=new ArrayDeque<>();
deque.add(root);
deepdeq.add(1);
while(!deque.isEmpty())
{
TreeNode t=deque.poll();
int deep=deepdeq.poll();
if(t.left==null&&t.right==null)
return deep;
if(t.left!=null)
{
deque.add(t.left);
deepdeq.add(deep+1);
}
if(t.right!=null)
{
deque.add(t.right);
deepdeq.add(deep+1);
}
}
return -1;
}


DFS遍历也可以,遇到叶子节点就看看深度是不是比当前最小值更小。

public class Solution {
int min=Integer.MAX_VALUE;
public int minDepth(TreeNode root)
{
if(root==null)
return 0;

inorder(root, 1);

return min;

}

public void inorder(TreeNode t,int deep)
{
if(t.left!=null)
inorder(t.left,deep+1);

if(t.left==null&&t.right==null)
min=Math.min(min, deep);

if(t.right!=null)
inorder(t.right,deep+1);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: