In the following search function for a linked list (using the Node and NodePtr as defined in the text), why is there code to check if here is NULL?. NodePtr search(NodePtr head, int target) { nodePtr here = head; if (here == NULL) { return NULL; } else { while( here->data != target && here->link != NULL) { here = here->link; } if (here->data == target) { return here; } else { return NULL; } } A. the list may be empty B. the list may be full C. there is no reason for that code to be there D. A and B Solution A. the list may be empty if head is NULL means no elements in the list .