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