
문제해석
linked list의 head가 주어졌을 때 리스트의 마지막부터 n번째 노드를 제거하고 헤드를 반환하라
정답 예
public ListNode removeNthFromEnd(ListNode head, int n) {
int size = 1;
ListNode node = head;
// 리스트 사이즈 측정
while (node.next != null) {
size++;
node = node.next;
}
if (n == 1 && size == 1) {
return null;
}
if (n == size) {
return head.next;
}
node = head;
for (int i=0; i<size;i++) {
// 삭제할 노드의 이전 위치에서 다음노드를 건너서 재정의
if (i == size-n-1) {
node.next = node.next.next;
} else {
node = node.next;
}
}
return head;
}'Algorithm' 카테고리의 다른 글
| [LeetCode 75] 1768. Merge Strings Alternately (0) | 2023.05.18 |
|---|---|
| [leetcode75] 226. Invert Binary Tree (0) | 2023.04.19 |
| [leetcode 75] 43. Multiply Strings (0) | 2023.04.06 |
| [leetcode 75] 202. Happy Number (0) | 2023.04.05 |
| [leetcode 75] 278. First Bad Version (0) | 2023.03.02 |