twin()이라는 링크 된 목록 [1 2 3 4]을 가져 와서 [1 1 2 2 3 3 4 4]. 나는 일하는 방법을 가지고 있지만 부분에 대해서는 혼란 스럽다. 내 코드에서 temp라는 새 SListNode 변수를 선언합니다. 이 임시 노드가 현재 노드를 복사 한 다음 연결하려고합니다. SListNode temp = current를 시도하면 프로그램이 실행되지 않습니다. 그러나 수동으로 임시 항목 및 다음 필드를 설정하면 메서드가 정상적으로 실행됩니다. SListNode temp = current please 할 때 어떤 일이 일어날 지 설명 할 수 있습니까?연결된 목록 노드 복사 및 연결된 목록 중간에 삽입
public void twin() {
SListNode current = head;
if(current == null){
return;
}
for(int i = 0; i <this.length();i++){
if(current == null){
return;
}
SListNode temp = new SListNode(0); // Problem here when I substitute these 3 lines for SListNode temp = current;
temp.next = current.next;
temp.item = current.item;
current.next = temp;
current = current.next.next;
}
}
* "프로그램이 실행되지 않습니다"*는 무엇을 의미합니까? 어떤 오류가 발생하고 있습니까? – Christian
원형 목록입니까? 길이()는 어떻게 계산됩니까? –
'temp = current' 할 때, 당신은 객체를 복사하지 않는다는 것을 주목하십시오. 당신은 그 객체에 접근하는 다른 방법을 제공하고 있습니다. 즉, '임시'와 '현재'는 같은 대상을 가리킬 것입니다. – Christian