2016-12-24 4 views
-5

이것은 링크 된 목록에 요소를 삽입하는 Java 프로그램입니다. 다음 코드를 작성했습니다 :Java에서 콜렉션을 사용하지 않고 링크 된 목록

import com.expanion.code.evalution.*; 
public class Answer implements QuestionInterface { 
    @Override 
    public SchNode func(SchNode head, int index, char ch) 
    { 
     SchNode ptr; 
     SchNode temp = new SchNode(ch); 

     int count=1; 


     for(ptr = head ; ptr!=null ; ptr=ptr.nextNode) 
     { 
      count++; 
      if(index==count) 
      { 
       if(ptr.nextNode == null) 
       { 
        ptr.nextNode = temp; 
        temp.nextNode = null; 
        ptr=temp; 
       } 
       else 
       { 
        ptr.nextNode = temp; 
        temp.nextNode = ptr.nextNode; 
        ptr=temp; 
       } 
      } 
     } 
     return ptr; 
    } 
} 

컴파일하는 동안 컴파일러는 루프가 충돌했다는 것을 나타냅니다. 나는 Java의 초보자이기 때문에 그것을 찾을 수 없었다.

+4

컴파일 오류를 묻는 경우 전체 오류 메시지를 게시 할 수 있습니다. 이 정보를 숨기지 마십시오. –

+0

Stackoverflow에 오신 것을 환영합니다. 너의 문제는 나에게 매우 불분명하다. 관찰하는 행동에 대한 자세한 설명을하십시오. 오류 메시지를 정확하게 인용하십시오. 현재 IDE에 문제 (또는 증상)가 있습니까? 아니면 프로그램을 실행하려고 할 때만입니까? (나는 전에 루프가 컴파일 된 것에 대한 소식을 듣지 못 했으므로 그 설명의 정확성에 회의적이다.) –

+0

나는 expanion이라는 포털에서 일하고있다. 내게 주어진 문제는 링크 된 목록의 특정 위치에 요소를 삽입하는 것입니다. 입력은 수동으로 주어지며 우리 부분은 함수 만 코딩하는 것입니다. 코드를 작성했지만 코드가 올바른지 확실하지 않습니다. 현재 IDE에서 주어진 코드를 실행할 때 "주어진 입력에 대해 루프가 충돌했습니다"라는 메시지가 표시됩니다. 그래서 루프가 어디에서 충돌했는지 찾을 수 없습니다. – kumar

답변

3

나는이 자체 temp.nextNode 점으로주기

ptr.nextNode = temp; 
temp.nextNode = ptr.nextNode; 

원인 것을 알 수있다.

이 줄을 교환해야합니다.