private int maxpath(TreeNode root)
	{
		if (root == null) return 0;
		//if (root.right ==root.left) return root.val;
		
		int maxl = root.left == null? 0 : maxpath(root.left);
		int maxr = root.right == null?0 : maxpath(root.right);
		
		if (maxl < 0 ) maxl = 0;
		if (maxr < 0) maxr = 0;
		
		if (root.val + maxl + maxr > _max)
		{
			 _max = root.val + maxl+ maxr;
		}
		return root.val + Math.max(maxl, maxr);
		
	}