<Medium> Remove Nth Node From End of List (LeetCode : C#)

이도희·2023년 3월 29일
0

알고리즘 문제 풀이

목록 보기
43/185

https://leetcode.com/problems/remove-nth-node-from-end-of-list/

📕 문제 설명

리스트가 주어질 때 끝에서 n번째 노드를 제거한 후 head 반환하기

  • Input
    리스트, 제거할 n
  • Output
    head 반환

예제

풀이

  1. 전체 개수 count
  2. 전체 다시 돌면서 제거해야할 부분만 뛰어 넘고 붙이기
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public int val;
 *     public ListNode next;
 *     public ListNode(int val=0, ListNode next=null) {
 *         this.val = val;
 *         this.next = next;
 *     }
 * }
 */
public class Solution {
    public ListNode RemoveNthFromEnd(ListNode head, int n) {

        ListNode tempNode = head;
        ListNode currNode = new ListNode(0);
        ListNode ansNode = currNode;

        int count = 0;
        int nextCount = 0;

        while(head != null)
        {
            count++;
            head = head.next;
        }

        head = tempNode;

        while(head != null)
        {
            nextCount++;

            if (nextCount == count - n + 1)
            {
                head = head.next;
                continue;
            } 
            
            currNode.next = new ListNode(head.val);
            head = head.next;
            currNode = currNode.next;
            
        }
  
        return ansNode.next;
        
    }
}

결과

profile
하나씩 심어 나가는 개발 농장🥕 (블로그 이전중)

0개의 댓글