노드가 아직 완전 복사가 아닌 이유를 잘 모르시겠습니까? 머리와 크기는 완벽하게 잘 복사됩니다.단일 링크 목록 복사 생성자
NewNode-> Data와 NewNode-> Next는 모두 딥 복사가 아닙니다. NewNode가 여전히 That-> Data and That-> Next를 가리키고 있는지 확실하지 않습니다.
노드를 만들 때 실제 값을 전달해야합니까?
미리 답변 해 주셔서 감사합니다. 매우 감사.
목록이 전달됩니다 (SLList &).
노드는 구조체입니다. 노드는 꼬리를 사용하지 않습니다. 내 경우에는 다음과 크기 만.
Node* That = that.Head;
//If not null then deep copy.
if (That != nullptr)
{
Head = that.Head;
Size = that.Size;
//Interate through the list until the end nullptr
while (That != nullptr)
{
Node* NewNode = new Node;
NewNode->Data = That->Data;
NewNode->Next = That->Next;
That = That->Next;
}
}
//Set the head to null if list passed in is empty.
else if (That == nullptr)
{
Head = nullptr;
Size = 0;
}
while 루프 안에 NewNode 포인터를 만들면 포인터를 남긴 후에 포인터가 삭제되지 않습니까? – Foitn
수정 된 코드를보고 싶을 수 있습니다. – v78
누군가 질문에 싫어하기 때문에 모든 대답을 순차적으로 downvoting합니까? 나는 코드 스타일을 좋아하지 않는다. 그러나 그 질문에 대답하지 않는 이유가 아니다. – CashCow