오늘의 문제는 입력값으로 정렬된 linked list를 받아서 중복된 값을 제외하는 겁니다.
소스코드 와 실행 결과는 아래와 같습니다.
입력값은 1,1,2,3,3 입니다.
로직을 하나하나 따라가 보겠습니다.
While문을 시작할 때는 current 값이 1, next 값이 1 그리고 next.next값이 2 입니다.
그러면 현재 값과 다음 값이 모두 1 이므로 if 문 안으로 들어가서 current.next 가 그 다음 값을 포인트에 하게 됩니다.
첫번쨰 While문을 끝내면 첫번째 1은 2를 포인트 하게 됩니다.
두번째 루프에서는 각각 값이 1,2,3이 됩니다.
그러면 현재 값 두번째 1은 2가 됩니다.
세번째 루프에서는 2,3,3 이 됩니다.
또한 현재 값 2는 3이 되죠.
네번째 루프에서는 3,3,null 이 됩니다.
여기서는 current.next.next가 널 이라서 Current.next도 널 이 되는가 같습니다.
간단한 문제 인 것 같은데 좀 헷갈립니다.
Linkedlist에 대해 잘 모르는 부분이 있는것 같습니다.
이에 대한 자세한 설명은 아래 유튜브에 있습니다.
소스코드는 아래와 같습니다.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode current = head;
while (current != null && current.next != null) {
if (current.next.val == current.val) {
current.next = current.next.next;
} else {
current = current.next;
}
}
return head;
}
}
'etc. > Leetcode' 카테고리의 다른 글
Leetcode 136. Single Number (Easy) (0) | 2022.09.30 |
---|---|
Leetcode - 121. Best Time to Buy and Sell Stock - Easy (0) | 2022.09.22 |
Leetcode - 125. Valid Palindrome - Easy (0) | 2022.09.17 |
미국 테크니컬 인터뷰 문제풀이 - FizzBuzz (1) | 2022.09.16 |
Leetcode - 88. Merge Sorted Array - Easy (0) | 2022.09.07 |
Leetcode - 69. Sqrt(x) - Easy (0) | 2022.09.03 |
Leetcode - 67. Add Binary - Easy (0) | 2022.09.03 |
Leetcode 66. Plus One - Easy (0) | 2022.09.02 |
Leetcode - 58. Length of Last Word - Easy (0) | 2022.08.25 |
Leetcode - 326. Power of Three - Easy (0) | 2022.08.25 |