二叉树的最小深度
先说一下什么是最小深度
搞清楚了什么事最小深度,接下来写一下代码的实现
public class MinDepth {
public int minDepth(TreeNode root){
Deque<TreeNode> deque = new LinkedList<>();
deque.offer(root);
int depth = 0;
while (!deque.isEmpty()){
int size = deque.size();
depth++;
for (int i=0;i<size;i++){
TreeNode node = deque.poll();
//如果是叶子节点,直接返回深度
if (node.left==null&&node.right==null){
return depth;
}
if (node.left != null) deque.offer(node.left);
if (node.right != null) deque.offer(node.right);
}
}
return depth;
}
}
思路:
跟求最大深度唯一的不同就是多了一个对叶子节点的判断,如果判断到此节点为叶子节点,则立即返回深度。