Description
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.
Note: A leaf is a node with no children.
Example
Given binary tree [3,9,20,null,null,15,7],
return its minimum depth = 2.
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
class Solution { public int minDepth(TreeNode root) { if (root == null) return 0; return helper(root, 1); } private int helper(TreeNode node, int depth){ if (node.left == null && node.right == null) return depth; if (node.left != null && node.right != null) return Math.min(helper(node.left, depth + 1), helper(node.right, depth + 1)); else if (node.left == null) return helper(node.right, depth + 1); else return helper(node.left, depth + 1); } }
|