2013-03-15 1 views
1

나는 잠시 동안 이것에 얽매 였고, 내가하는 일이 언제나 자르거나 임의로 "정렬"된 것처럼 보인다. 두 요소를 교환하기에 충분한 참조를 이동하고 있습니까? 현재 노드의 SSN 필드가 이전 노드보다 크면 이전 노드의 SSN 필드가 현재 노드의 SSN 필드와 연결되도록하십시오.역방향으로 구축 된 단일 링크 목록에서 두 노드를 어떻게 바꿀 수 있습니까?

public void loadRecords() throws FileNotFoundException { 

    Node head = null; 
    Node prev = null; 
    Node curr = null; 
    Scanner fileRead = makeAFile(database); 
    fileRead.useDelimiter(";|\n"); 
    boolean sorted = false; 
    while (fileRead.hasNext()) { 
     head = new Node(fileRead.next(), fileRead.next(), fileRead.next()); 
     head.nextOne = prev; 

     if (prev != null) { 
      for (curr = head; curr != null; curr = curr.nextOne) { 
       if ((curr).compareTo(prev) > 0) { 

        head.nextOne = prev.nextOne; //oops, there we go. used to be "head.nextOne = curr.nextOne". 
        prev = head; // not even sure if this is what I want 
        sorted = true; 
       } else 
        break; 
      } 
     } 

     if (sorted != true) { 
      prev = head; 
     } 
     sorted = false; 
    } 
} 

답변

0

당신은 가능성이

   Node tmp = head.nextOne 
       head.nextOne = prev.nextOne; 
       prev.nextOne = tmp; 
같은 뭔가가 필요 : 이것은 내 코드가 순간에 모습입니다
관련 문제