Вы удаляете начало, а затем пытаетесь разыменовать его, получив ссылку на него. Это потерпит крах, потому что вы только что удалили его. Вы, вероятно, хотите что-то вроде этого:
node *temp = start;
start = start->link;
delete temp;
print_list(start);