正确的

function hasPathSum( root ,  sum ) {
  if(root==null)  return false;
  if(sum==root.val && root.left==null && root.right==null)  return true;
  return hasPathSum(root.right,sum-root.val) || hasPathSum(root.left,sum-root.val);
}

错误的

{},0这样的测试用例过不去,我觉得emmm过得去过不去都可以

function hasPathSum( root ,  sum ) {
  if(root==null && sum==0)  return true;
  if(root==null || sum<0)   return false;
  return hasPathSum(root.right,sum-root.val) || hasPathSum(root.left,sum-root.val);
}