Checking if List is Sorted

Procedure to check if a linked list is sorted or not.

Procedure :

  • Check if only one node is present. If so, return true.

  • Else, traverse through the list and check if the data of current node is greater than the data in the next node. If so, return false.

  • Return true if while loop is completely executed without returning false.

int isSorted(struct node *ptr) {

    // If only one node is present, it is sorted
    if (ptr -> next == NULL) {
        return 1;
    }

    else {
        // Check until last node is reached
        while (ptr -> next != NULL) {
            // If data of previous node is greater 
            if (ptr -> data > ptr -> next -> data) {
                return 0;
            }
            ptr = ptr -> next;
        }
        return 1;
    }
    
}

Contributed by Nitin Ranganath

Last updated