lintcode-easy-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.
Given a binary tree as follow:
1
/ \
2 3
/ \
4 5
The minimum depth is 2
.
递归,注意定义,深度是指root到leaf node最短路径的节点个数,递归的基本情况是root为leaf node,而不是root为null。当然也要加入root为null时候的判断条件。
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: An integer. */ public int minDepth(TreeNode root) { // write your code here if(root == null) return 0; if(root.left == null && root.right == null) return 1; int left = Integer.MAX_VALUE; int right = Integer.MAX_VALUE; if(root.left != null) left = minDepth(root.left); if(root.right != null) right = minDepth(root.right); return Math.min(left, right) + 1; } }