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.
题解:递归解决,用私有变量minDep保存最小的深度,每当遍历到叶节点的时候就看是否需要更新。
代码如下:
1 /** 2 * Definition for binary tree 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 private int minDep = Integer.MAX_VALUE; 12 public void minDepthRecur(TreeNode root,int depth){ 13 if(root == null) 14 return; 15 if(root.left == null && root.right == null){ 16 if(minDep > depth) 17 minDep = depth; 18 return; 19 } 20 minDepthRecur(root.left, depth+1); 21 minDepthRecur(root.right, depth+1); 22 } 23 public int minDepth(TreeNode root) { 24 if(root == null) 25 return 0; 26 minDepthRecur(root, 1); 27 return minDep; 28 } 29 }