나는 n 개의 노드로 된 링크 된 목록을 가지고 있는데, k 번째 노드를 삭제하고 그 노드에 요소를 표시하고 싶습니다. n의 값이 비교적 작고 문제의 복잡성이 문제가되지 않는다면 이것은 쉽습니다.링크 된 목록의 10000 번째 노드 삭제하기
문제는 내가 n> = 200000 인 링크 된 목록에 n 개의 노드가 있고 상대적으로 큰 값 (k = 150000)의 노드를 삭제하려고 할 때입니다.
이 문제에 대한 일반적인 해결책은 연결되어있는 전체 목록을 가로 지르고 노드 (솔루션의 복잡도가 O (n) 인 노드)를 삭제하는 것이지만 간단하고 간단한 솔루션이지만 더 많은 시간이 걸립니다. 이 문제에 대한 다른 해결책은 2 개의 포인터를 가질 수 있지만 여전히 최적의 솔루션이 아닙니다.
나는 최적의 솔루션을 찾고 최소의 시간으로 결과를 제공합니다.
희망 사항은 분명합니다. 도움이 필요합니다 ..
이것은 인터뷰 질문 일 뿐이며 현실적인 시나리오입니까? 나중에, 귀하가 통제 할 수있는 것과 같은 것, 그리고 모든 것이 변경 될 수있는 것과 같은 다른 것들에 대해 더 많은 통찰력을 줄 수 있습니까? –
단독 연결 목록이있는 경우 유일한 선택은 O (n) 솔루션입니다. 더 많은 정보를 추가하기 위해 데이터 구조를 수정할 수 있습니까? 답변 중 하나에 의해 제안 된 것처럼 중간 노드에 대한 참조 목록을 유지하는 것처럼? –