- 문제 링크: https://leetcode.com/problems/remove-nth-node-from-end-of-list/
- 난이도: Medium
좀 분기를 많이 쳐서 풀었는데, 답지를 보고 무릎을 탁 쳤다
다음 노드가 head인 left, right 두 포인터를 만들고, n 만큼 right 포인터를 옮긴다
그 다음, right가 끝까지 도달할 때까지 left, right를 하나씩 옮긴다
그러면 left의 바로 다음 노드가 지우는 노드가 된다.
class Solution:
def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
dummy = ListNode(0, head)
left = dummy
right = head
while n > 0:
right = right.next
n -= 1
while right:
left = left.next
right = right.next
left.next = left.next.next
return dummy.next
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 78. Subsets (0) | 2024.09.16 |
---|---|
[LeetCode][Python] 226. Invert Binary Tree (0) | 2024.09.16 |
[LeetCode][Python] 21. Merge Two Sorted Lists (0) | 2024.09.11 |
[LeetCode][Python] 206. Reverse Linked List (0) | 2024.09.10 |
[LeetCode][Python] 567. Permutation in String (0) | 2024.09.10 |