정렬된 연결 목록의 헤드가 주어지면 head
각 요소가 한 번만 나타나도록 모든 중복 요소를 제거합니다 . 정렬된 연결 목록을 반환합니다 .
입력: 헤드 = [1,1,2] 출력: [1,2]
아이디어 1: 질문의 의미 시뮬레이션
struct ListNode* deleteDuplicates(struct ListNode* head){
if(head==NULL||head->next==NULL)return head;
struct ListNode*p = head,*q = head->next;
while(q!=NULL)
{
if(p->val==q->val)p->next = q->next;
else{
p = p->next;
}
q = q->next;
}
return head;
}
분석하다:
이 질문은 앞의 질문과 비슷하지만 반복되는 요소를 모두 삭제하는 것이 아니라 많은 반복되는 요소를 삭제하는 것입니다. 링크드 리스트, 마지막으로 링크드 리스트 출력
요약하다:
이 질문은 연결 리스트의 삭제 동작을 살펴보는 것으로, 판단문을 추가하여 만들 수 있습니다.