先说一下什么是最小深度
搞清楚了什么事最小深度,接下来写一下代码的实现
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; } } 思路: 跟求最大深度唯一的不同就是多了一个对叶子节点的判断,如果判断到此节点为叶子节点,则立即返回深度。