반응형

LinkedList에 해당하는 글 1

반응형

[Leetcode] 19. Remove Nth Node From End of List

Algorithm|2021. 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;
    
}
반응형

댓글()