【LeetCode】Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example, Given
1->1->2
, return 1->2
. Given 1->1->2->3->3
, return 1->2->3
. 사고:제목 이 매우 간단 합 니 다.여기 서 기록 을 하 는 것 은 링크 에 대한 새로운 이해 와 인식 일 뿐 입 니 다.이전에 링크 와 완전히 이해 하지 못 했 지만 이 문 제 를 통 해 완전히 이해 했다 고 할 수 있 고 링크 에 대한 새로운 이해:
(1)링크 의 모든 단원 은 독립 된 것 으로 안의 next 지침 이 그들 을 연결 시 켰 을 뿐이다.
(2)다음 함수 deleteDuplicates 는 ListNode 를 되 돌려 줍 니 다.모든 링크 형식 을 바 꾸 려 면 next 포인터 의 지향 부 를 수정 해 야 합 니 다.마지막 으로 돌아 온 것 도 이 링크 의 헤드 노드 입 니 다.(사실은 C++의 헤드 포인터 와 유사 합 니 다.자바 에 포인터 개념 이 없습니다)우 리 는 pre=head 를 양보 합 니 다.그러면 이 두 대상 이 같은 메모리 공간 을 가리 키 고 있다 고 생각 합 니 다.
AC 코드:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
Set<Integer> nodeSet = new HashSet<Integer>();
ListNode pre = null;
ListNode newHead = head;
while (head != null) {
if (!nodeSet.contains(head.val)) {
nodeSet.add(head.val);
pre=head;
}
else{
pre.next=head.next;
}
head = head.next;
}
return newHead;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.