public static TreeNode maxSumSubTree(TreeNode root) {
		if (root==null) return null;
		TreeNode[] rec=new TreeNode[1];
		int[]sum={Integer.MIN_VALUE};
		sumSubTree(root, sum, rec);
		return rec[0];
	}