() Given the following structure definition and typedef:
typedef struct node st node;
struct node st {
int data; node *next; };
Write a C function, remove item(), that takes an integerargument, num, and a linked list, list, (possibly NULL) of thesestructures. remove item() removes the first node of the list withthe given value, if any, and returns a pointer to the head of themodified list. If a node is removed, it should be free()d. Writerobust code.
node *remove item(int num, node *list){
Solution
node *remove item(int num, node *list){ node* start = list; if(list == NULL){
OR
OR