(Leetcode) 19 - Remove Nth Node From End of List
기회가 되어 달레님의 스터디에 참여하여 시간이 될 때마다 한문제씩 풀어보고 있다.
https://leetcode.com/problems/remove-nth-node-from-end-of-list/
내가 작성한 풀이
처음에는 linked list 의 길이를 재고, 어떤 node를 삭제해야하는지 확인하여 삭제하도록 하였다.
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode current = head;
int length = 0;
while(current != null) {
length++;
current = current.next;
}
if (length == 1) {
return null;
}
if (length == n) {
return head.next;
}
int removeIndex = length - n;
int pointer = 0;
current = head;
while (pointer < removeIndex - 1) {
current = current.next;
pointer++;
}
current.next = current.next.next;
return head;
}
}
TC, SC
시간 복잡도는 O(n)이고, 공간 복잡도는 O(1)이다.