[Leetcode] 19. Remove Nth Node From End of List
Algorithm2021. 8. 4. 20:02
반응형
Identifying the Problem
마지막에서 n번째위치한 node 제거
Organizing thoughts
1. 마지막 노드 index를 파악하고
2. index-n-1번 노드 (제거할 노드 이전 index) 와 index-n+1(제거할 노드 다음 index) 노드를 연결한다.
Mistake
- listnode = [1,2] n = 1 일 때 [1,2] 가 나왔다.
두번째 for 문의 탈출조건을 temp로 했는데, link->next = temp 를 하지못하고 탈출해버렸다.
그래서 탈출조건을 temp 에서 k<=i로 바꾸었다.
- listnode = [1,2] n = 2 일 때 에러가 나왔다.
if(i-n-1 == k) 부분에서 -1 == k 가 되면서 link의 주소가 지정되지 않았다.
그래서 전체길이와 n의 길이가 같을 때, 처음거만 패스한 주소를 리턴하게 했다.
Sourcecode
struct ListNode* removeNthFromEnd(struct ListNode* head, int n)
{
int i=0;
struct ListNode* temp = head;
struct ListNode* link;
struct ListNode* ans = head;
if(head->next == NULL) return NULL;
for(i=0;head;i++)
{
head = head->next;
}
if(n==i) return ans->next;
for(int k=0; k<=i ; k++)
{
if(i-n-1 == k)
link = temp;
if(i-n+1 == k)
link->next = temp;
if(k<i)
temp = temp->next;
}
return ans;
}
반응형
'Algorithm' 카테고리의 다른 글
[Leetcode] 11. Container With Most Water (0) | 2021.08.06 |
---|---|
[Leetcode] 33. Search in Rotated Sorted Array (0) | 2021.08.06 |
[Leetcode] 153. Find Minimum in Rotated Sorted Array (0) | 2021.08.04 |
[Leetcode] 206. Reverse Linked List (0) | 2021.08.03 |
[Leetcode] 101. Symmetric Tree (0) | 2021.08.03 |
댓글()