c++ 아래 짧은 링크드 리스트 코드중 2가지 궁금한것

ee 76.***.207.158

이제는 이해했다고 생각했는데….그러나 꼬리를 무는 다음 질문. 왜 아래 함수는 그럼….. 실행이………. 안될까?


void insertAtHead(node** head, int val)
{
     node* temp = *head; // 오리지날 함수에서 이렇게 살짝 바꾸어줌
     
     node* n = new node(val);                               
     n->next = temp; 
     temp = n;
}

int main()
{
	node* head = NULL;

	insertAtHead(&head, 1);
	insertAtHead(&head, 2);
	print(head);
	cout << endl;

	return 0;
}

마찬가지로 아래도 역시 실행 안됨


void insertAtHead(node*& head, int val)
{
     node* temp = head; // 오리지날 함수에서 이렇게 살짝 바꾸어줌
     
     node* n = new node(val);                               
     n->next = temp; 
     temp = n;
}

int main()
{
	node* head = NULL;

	insertAtHead(head, 1);
	insertAtHead(head, 2);
	print(head);
	cout << endl;

	return 0;
}