我想在列表中插入一个元素作为第二个元素,创建一个新列表而不修改原来的列表。在第二个位置插入列表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