public static int minValue(Node root) {
		if(root == null)
			return (~0);
		else if(root.left == null && root.right == null)
			return root.data;
		else if(root.left == null)
			return Math.min(root.data, minValue(root.right));
		else if(root.right == null)
			return Math.min(root.data, minValue(root.left));
		else
			return Math.min(root.data, Math.min(minValue(root.left), minValue(root.right)));
	}