public int minPathSum(TreeNode root) {
if(root==null)
return -1;
return getLength(root,0);
}
private int getLength(TreeNode root, int curLen) {
int minLeft=-1;
int minRight=-1;
if(root.left!=null){
minLeft=getLength(root.left,root.val+curLen);
}
if(root.right!=null){
minRight=getLength(root.right,root.val+curLen);
}
if(root.left==null&&root.right==null){
return curLen+root.val;
}
if(root.left==null){
return minRight;
}
if(root.right==null){
return minLeft;
}
return minLeft>minRight?minRight:minLeft;
}
转自:http://www.cnblogs.com/xiangyangzhu/