2016-06-20 2 views
1

Java에서 pop 메서드를 구현했습니다. 목록에 요소 하나가 있지만 구분 기호 일치에 사용합니다.POP 메서드 링크 목록

public int length(){ 
    Node current = this.head; 
    int length = 0; 
     while(current != null){ 
      current = current.getNextNode(); 
      length += 1; 
     } 
    return length; 
} 

public char pop(){ 
    Node current = this.head; 
    Node lastN = this.last; 

    for(int i = 0; i < length() - 2; i++){ 
     current = current.getNextNode(); 
    } 
    current.setNextNode(null); 
    this.last = current; 

    return lastN.getBracket(); 
} 

length가> = 1 인 경우 첫 번째 요소를 팝하는 방법 또는 내 코드를 개선하기위한 제안.

답변

0

java.util.LinkedList를 사용하십시오.

, addLast(), size(), removeFirst()removeLast()이 적용됩니다.

다른 방법으로이 delimiter check example을 확인하십시오.

코드에서 "초기"또는 "마지막 요소"의 경우를 놓치게됩니다.이 경우는 특별합니다. this.head == this.last의 사례를 확인해야합니다. 마지막 요소를 반환하고 목록을 정리해야하는 경우.

+1

그래,하지만 연습 목적으로하고 싶습니다. 또한 수동으로하는 것이 정말 중요하고 좀 생각할 수 있습니다. –

+0

님이 아이디어를 추가했습니다. – manuelvigarcia

+0

"초기"사례 아이디어를 확인 했습니까? – manuelvigarcia

0

루프의 목록 요소를 통해 이동하는 이유는 무엇입니까? 그 대신에 :

if (this.head != null) 
{ 
    char val = this.head.getBracket(); 
    this.head = this.head.getNextNode(); 
} 

이 스 니펫은 첫 번째 요소를 삭제하고 두 번째 요소를 가리 키도록 헤드를 설정합니다. JVM은 old head을 지울 것입니다. 목록이 원형 인 경우 새 머리를 가리 키도록 last을 설정하십시오.