typedef int element;

typedef struct ListNode {

element data;

struct ListNode* link;

}ListNode;

ListNode* insert_first(ListNode* head, element value) {

ListNode* p = (ListNode*)malloc(sizeof(ListNode));

p->data = value;

p->link = head;

head = p;

return head;

}
이렇게 정의된 함수 insert_first에서 마지막에 return head를 하는 이유가 뭔가요? 포인터형식으로 받아서 
head= p; 부분에서 이미 변경된거아닌가요?