2014-09-26 8 views
0

끝에서부터 자바 링크 된 목록을 거꾸로 반복합니다. Java의 LinkedList에는 역순으로 반복되는 iterator를 반환하는 descendingIterator() 메서드가 있습니다. 그러나 반복하는 동안 어디서나 목록에 동적으로 일정 시간 삽입을 할 수 있어야합니다. descendingIterator() 메서드는 ListIterator를 반환하지 않으므로 삽입을 수행 할 수 없습니다. Java에서이 작업을 수행 할 수있는 기본 제공 방법이 있습니까? 아니면 직접 구현해야합니까?연결된 목록 내림차순 반복 삽입

+0

물론 LinkedList # listIterator()를 호출하여 목록의 길이를 전달할 수는 있지만 선형 시간으로 실행하는 것이 비효율적이라고 생각합니다. – user2097749

답변

0
list.listIterator(list.size()-1); 

아마도 당신이 찾고있는 것입니다. documentation에 따르면, 선형 시간에 실행되지해야합니다

작업의 모든

는 이중 연결 목록 예기되는대로의 동작을합니다. 목록에 색인을 생성하는 작업은 시작 또는 끝 중 지정된 색인에 가까운 쪽 의 목록을 탐색합니다.

그래서 LinkedList가 마지막 요소에 직접 액세스 할 수 있다고 생각할 수 있습니다.

은 참조 : https://stackoverflow.com/a/2765764/734151

당신은이를 확인하기 위해 실행 시간을 확인 할 수 있습니다.

관련 문제