题目:
给定一个二叉树,找出其最小深度。
二叉树的最小深度为根节点到最近叶子节点的距离。
样例
给出一棵如下的二叉树:
1
/ \
2 3
/ \
4 5
这个二叉树的最小深度为 2
解题:
递归求解
Java程序:
/** * 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 int res = 0; return depth(res,root); } public int depth(int res,TreeNode root){ if(root==null) return 0; if(root.left==null && root.right==null) return res+1; if(root.left!=null && root.right==null) return res=depth(res,root.left)+1; if(root.left==null && root.right!=null) return res=depth(res,root.right)+1; int res1 = depth(res,root.left)+1; int res2 = depth(res,root.right)+1; res = res1>res2?res2:res1; return res; } }