최근에 이중 연결 목록이있는 자바 코드를 만들었습니다. 그러나이 제거 방법에 while for 루프가있는 것 같습니다.
누군가가 이것을 확인하도록 도울 수 있다면 좋을 것입니다. 이 특정 메서드에 for 루프가 있다고 이미 결론을 내 렸습니다.
public void remove(Node value){
Node temp = head;
while(temp != null){
if(value.food.equals(temp.food)){
addtofront(temp);
if(temp.next == null){
temp.back.next = null;
temp.back = null;
}
else{
temp.back.next = temp.next;
temp.next.back = temp.back;
}
}
temp= temp.next;
System.out.println("Print");
}
}
while 루프는 temp (목록의 다음 개체)가 null 인 경우에만 종료됩니다. 즉, 제거 할 항목을 찾았더라도 끝까지 전체 개체 목록을 반복합니다. 이는 제거 할 객체가 목록에서 발견 된 경우 조기에 종료되도록하기 위해 while 루프에 제거 된 부울과 같은 추가 조건을 추가하여 수정할 수 있습니다.
boolean removed = false;
while(temp != null && !removed) {
//search list for item to remove
//when the item has been removed, set removed = true;
}
어떤 일이 일어나고 있는지 그리고 문제가 어디에 있는지 정확히 확인하기 위해 단계적으로 한 사례를 통해 루프를 추적하는 것이 항상 좋은 생각입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다