logo CodeStepByStep logo


Language/Type: C++ linked lists pointers

Write a function named countDuplicateStrings that accepts a pointer to a ListNodeString representing the front of a linked list of strings. Your function should return the number of duplicates in a sorted list, case-insensitively. Your code should assume that the list's elements will be in case-insensitive sorted order, so that all duplicates will be grouped together. For example, if a variable named front points to the front of the following sequence of values, the call of countDuplicateStrings(front) should return 7 because there are 2 duplicates of "apple", 1 duplicate of "bat", 1 duplicate of "car", 2 duplicates of "dog"and 1 dupe of "fox".

{"apple", "apple", "Apple", "bat", "Bat", "car", "car", "dog", "dog", "dog", "fox", "fox"}

Constraints: Do not construct any new ListNodeString objects in solving this problem (though you may create as many ListNode* pointer variables as you like). Do not use any auxiliary data structures to solve this problem (no array, vector, stack, queue, string, etc). Your function should not modify the linked list's state; the state of the list should remain constant with respect to your function. You should declare the function to indicate this to the caller.

Assume that you are using the ListNodeString structure as defined below:

struct ListNodeString {
    string data;         // value stored in each node
    ListNode* next;      // pointer to next node in list (nullptr if none)
Function: Write a C++ function as described, not a complete program.

You must log in before you can solve this problem.

Log In

Need help?

Stuck on an exercise? Contact your TA or instructor.

If something seems wrong with our site, please

Is there a problem? Contact us.