Consider the function f defined below.
struct item {
int data;
struct item * next;
};
int f(struct item *p) {
return ((p == NULL)  (p>next == NULL)
((p>data <= p >next > data) &&
f(p>next)));
}
For a given linked list p, the function f returns 1 if and only if

the list is empty or has exactly one element

the elements in the list are sorted in nondecreasing order of data value

the elements in the list are sorted in nonincreasing order of data value

not all elements in the list have the same data value
I m not getting it ,there is no return 1 statment so how thiz will right ?