정렬된 연결 목록에서 중복을 제거합니다.
2942 단어 clinkedlistbeginners
예 1:
입력 : 연결 리스트 : 1, 2, 2, 3, 3, 4, 5
Output : 중복 제거 후 Linked List : 1, 2, 3, 4, 5
예 2:
입력 : 연결 리스트 : 5, 5, 6, 7, 8, 8
Output : 중복 제거 후 Linked List : 5, 6, 7, 8
단계:
currentNode
유형의 두 포인터 nextNode
및 struct node
를 선언합니다. currentNode
노드를 가리키도록 head
를 만듭니다. nextNode
즉 nextNode = currentNode->next->next
에 저장하여 노드 중 하나(중복으로 간주됨)를 목록에서 분리합니다. 그런 다음 현재 노드와 중복 노드 사이의 링크를 끊고 포인터 nextNode
즉, currentNode->next = nextNode
로 가리키는 노드에 현재 노드를 연결합니다. 정렬된 연결 목록에서 중복 항목을 제거하는 C 프로그램:
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node * next;
};
void displayLL(struct node * head)
{
struct node * temp;
temp = head;
temp=head;
while(temp!=0)
{
printf("%d ",temp->data);
temp = temp->next;
}
}
void removeDup(struct node *head)
{
struct node *currentNode = head;
struct node *nextNode;
while(currentNode != NULL && currentNode->next != NULL)
{
if(currentNode->data == currentNode->next->data )
{
nextNode = currentNode->next->next;
if(nextNode == NULL)
{
currentNode->next = NULL;
break;
}
currentNode->next = nextNode;
}
if(currentNode->data != currentNode->next->data)
{
currentNode = currentNode->next;
}
}
printf("\n--------------------------------\n");
printf("Linked List after removing duplicates : ");
displayLL(head);
}
int main()
{
struct node *head = 0, *newnode, *temp;
int n, choice, newdata;
// Create Linked List //
printf("Enter the number of nodes in the list : ");
scanf("%d", &n);
for(int i = 1; i<=n; i++)
{
newnode = (struct node *)malloc(sizeof(struct node));
printf("Enter the data%d : ", i);
scanf("%d", &newnode->data);
newnode->next = 0;
if(head == 0)
{
head = temp = newnode;
}
else
{
temp->next = newnode;
temp = newnode;
}
}
printf("--------------------------------\n");
printf("Linked list : ");
displayLL(head);
removeDup(head);
}
자세한 내용은 이것을보십시오.
Reference
이 문제에 관하여(정렬된 연결 목록에서 중복을 제거합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dhanashreerugi/remove-duplicates-from-sorted-linked-list-5g4k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)