Q. consider the function f defined here:struct item{int data;struct item * next;};int f (struct item *p){return((p==NULL) ||((p->next==NULL)||(p->data<=p->next->data) && (p->next)));}For a given linked list p, the function f returns 1 if and only if (Solved)
1. the list is empty or has exactly one element
2. the element in the list are sorted in non-decreasing order of data value
3. the element in the list are sorted in non-increasing order of data value
4. not all element in the list have the same data value
- b. the element in the list are sorted in non-decreasing order of data value