我想在列表中插入一個元素作爲第二個元素,創建一個新列表而不修改原來的列表。在第二個位置插入列表C++
實施例: 列表1 2 3 4 5,CIN >> 55,然後新的列表成爲1 55 2 3 4 5
問題是,這兩個列表進行修改。這是爲什麼發生?
ptr_list insertAfterFirstElem(ptr_list head){
ptr_list tmp;
tmp=new list;
cout<<"Insert value"<<endl;
cin>>tmp->val;
tmp->next=head->next;
head->next=tmp;
return (head);
}
我寫了一個insertAtTop功能工作正常:
ptr_list insertAtTop(ptr_list head){
ptr_list tmp;
tmp=head;
head=new list;
cout<<"Insert value"<<endl;
cin>>head->val;
head->next=tmp;
return (head);
}
你能解釋一下什麼是這兩個函數之間的區別?爲什麼insertAtTop()不會修改原始列表?
你在哪裏創建一個新列表?您正在創建一個新節點並將其添加到原始列表中。 – Bhargava