반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

오늘의 문제는 입력값으로 정렬된 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에 대해 잘 모르는 부분이 있는것 같습니다.

 

이에 대한 자세한 설명은 아래 유튜브에 있습니다.

 

https://youtu.be/sq49IpxBl2k

https://youtu.be/LRfLzM5uVDg

 

 

https://youtu.be/klZ0fFXxT6Q

 

https://youtu.be/TcNevBGuCAI

https://youtu.be/wleQHJBO63Q

소스코드는 아래와 같습니다.

 

/**
 * 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;
    }
}

반응형