111. 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.
题目含义:获得二叉树的最小高度
方法一:dfs
1 private int findMinDepth(TreeNode node) 2 { 3 if (node == null) return 0; 4 if (node.left == null&&node.right==null) return 1; 5 6 if (node.left == null) return findMinDepth(node.right)+1; 7 else if (node.right == null) return findMinDepth(node.left)+1; 8 else return 1+Math.min(findMinDepth(node.left),findMinDepth(node.right)); 9 } 10 11 public int minDepth(TreeNode root) { 12 if (root == null) return 0; 13 return findMinDepth(root); 14 } 15 }
方法二:BFS
1 public int minDepth(TreeNode root) { 2 if (root == null) return 0; 3 Queue<TreeNode> queue = new LinkedList<>(); 4 queue.add(root); 5 int depth = 1; 6 while (!queue.isEmpty()) 7 { 8 int size = queue.size(); 9 for (int i=0;i<size;i++) 10 { 11 TreeNode node = queue.poll(); 12 if (node.left==null && node.right==null) return depth; 13 if (node.left !=null) queue.offer(node.left); 14 if (node.right !=null) queue.offer(node.right); 15 } 16 depth++; 17 } 18 return depth; 19 20 }