>웹 프론트엔드 >JS 튜토리얼 >정렬된 연결 목록에서 중복 항목을 제거하는 Javascript 프로그램

정렬된 연결 목록에서 중복 항목을 제거하는 Javascript 프로그램

PHPz
PHPz앞으로
2023-09-15 23:41:021079검색

用于从排序链接列表中删除重复项的 Javascript 程序

연결된 목록은 선형 데이터 구조입니다. 정수로 구성된 정렬된 연결 목록이 제공됩니다. 반복되거나 반복될 수 있는 숫자가 있으므로 이를 제거해야 합니다. 주어진 연결 리스트는 정렬되어 있으므로 간단히 반복할 수 있으며 while 루프를 사용하여 중복 노드를 제거할 수 있습니다. 논리를 더 잘 이해할 수 있도록 시간 및 공간 복잡도에 대한 논의를 통해 적절한 코드를 구현하겠습니다.

으아악

설명 - 주어진 연결 목록은 중복된 요소를 쉽게 찾을 수 있도록 정렬되어 있으며, 이전 값과 같으면 건너뛰어 제거할 수 있습니다.

코드가 어떻게 작동하는지 살펴보겠습니다

방법

아래 단계에 따라 문제를 해결하겠습니다. -

  • 먼저 연결 리스트의 노드에 대한 구조를 제공하는 클래스를 만듭니다.

  • 둘째, 연결 리스트를 인쇄하고 기존 연결 리스트에 새 노드를 추가하는 함수를 만들어 보겠습니다.

  • 중복 요소를 제거하려는 연결 목록의 헤드를 전달하고 새 연결 목록의 헤드를 반환하는 함수를 만듭니다.

  • 먼저 연결리스트가 비어 있는지, 크기가 1인지 확인합니다. 이 경우 머리를 있는 그대로 반환합니다.

  • 두 개의 변수를 생성합니다. 하나는 헤드를 나타내고 다른 하나는 헤드의 다음 노드를 나타냅니다.

  • 현재 노드와 다음 노드의 값이 동일하면 다음 노드를 다음 노드로 이동하고 현재 노드의 다음 노드 주소를 업데이트합니다.

  • 그렇지 않으면 다음 노드로 이동하고 다음 노드를 다음 노드로 이동합니다.

  • 마지막으로 헤더를 반환하고 그 안에 있는 값을 인쇄합니다.

더 나은 이해를 위해 주어진 단계를 코드로 구현해 보겠습니다

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N)입니다. 여기서 N은 주어진 연결 목록의 총 노드 수입니다. 연결 리스트를 한 번만 탐색하므로 시간 복잡도는 선형입니다.

위 코드의 공간 복잡도는 추가 공간을 사용하지 않기 때문에 O(1)입니다.

결론

이 튜토리얼에서는 정렬된 연결 목록에서 중복 요소를 제거하는 JavaScript 프로그램을 구현했습니다. 연결된 목록은 정렬되어 있으므로 모든 중복 요소는 서로 인접해 있으며 이를 순회하여 쉽게 제거할 수 있습니다. 우리가 구현한 프로그램의 시간 복잡도는 O(N)이고 공간 복잡도는 O(1)입니다.

위 내용은 정렬된 연결 목록에서 중복 항목을 제거하는 Javascript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제