2024/07/15 3

[LinkedList][Medium] 19. Remove Nth Node From End of List

Remove Nth Node From End of List - LeetCode 리스트가 주어질 때, 뒤에서 n 번째에 해당하는 노드를 삭제 하라.  먼저 뒤에서 n 번째의 노드를 찾는다. slow, fast 포인터를 이용하면 찾을 수 있다. 이 후, head 처리에 유의하며 해당 노드를 삭제 한다. 더보기ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* fast = head; ListNode* slow = head; ListNode* prev = nullptr; int cnt = 0; while (fast != nullptr) { if (cnt >= n) { prev ..

Leetcode/NeetCode 2024.07.15

[LinkedList][Medium] 143. Reorder List

Reorder List - LeetCode  리스트가 주어질 때, 리스트를 앞에서 하나, 뒤에서 하나 이런식으로 재정렬 하라. 우선 가운데 부분을 찾는다. 이후 중간부터 버퍼에 넣고 뒤집는다. 혹은 바로 list를 뒤집는다. 이후에 하나씩 head에 넣으면서 순서를 바꾼다.  더보기void reorderList(ListNode* head) { // Find the center. ListNode* fast = head; ListNode* slow = head; ListNode* prev = nullptr; while (fast != nullptr && fast->next != nullptr) { prev = slow; slow = slow->nex..

Leetcode/NeetCode 2024.07.15

[LinkedList][Easy] 21. Merge Two Sorted Lists

https://leetcode.com/problems/merge-two-sorted-lists/description/  두 개의 정렬된 list가 두어질 때 이 두 리스트를 merge 하라.  딱히 어려운 부분이 없다.직관대로 한다. 코드 .ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { ListNode* head = nullptr; ListNode* node1 = list1; ListNode* node2 = list2; ListNode* node = nullptr; ListNode* prev = nullptr; while (node1 != nullptr || node2 != nullptr) { ..

Leetcode/NeetCode 2024.07.15