2011-03-20 4 views
0

안녕하세요 이것은 항목을 삽입하기위한 코드입니다 ... 목록의 시작 부분에 삽입 할 때 실패했으나 왜 또는 어떻게 수정해야하는지 이해하지 못했습니다. 삽입 키가 머리 항목의 키보다 작은 경우 솔루션에서순서가 매겨진 연결 목록에 삽입 - Java ADT

public void put(K key, V value){ 
    OrderedLinkedListEntry <K,V> item = new OrderedLinkedListEntry (key, value); 

    OrderedLinkedListEntry <K,V> current = head; 
    OrderedLinkedListEntry <K,V> previous = null; 

    if(current == null){ 
     head = item; 
     numItems ++; 
     return; 
    } 

    while(current != null){ 
     int result = key.compareTo(current.getKey()); 
     if(result == 0){ 
      current.setValue(value); 
      return; 
     }else if (result < 0){ 
        item.setNext(current); 
        if (previous != null){ 
        previous.setNext(item); 
        } 
        numItems ++; 
        return; 
       } 

     previous = current; 
     current = current.getNext(); 

    } 
+0

삽입 할 키가 헤드 항목의 키보다 작 으면'previous'가 null입니다. – Apalala

답변

0

previous은 null입니다.

머리의 키보다 작은되는 새 키의 특별한 경우를 확인하십시오 (당신은 또한 키가 마지막 항목에서보다 큰 경우를 처리해야

if (key.compareTo(head.getKey() < 0) { 
    item.setNext(head); 
    head = item; 
    return; 
} 

result > 0 사례).