[알고리즘/leetcode] Remove Nth Node From End of List(python)

유현민·2022년 8월 24일
0

알고리즘

목록 보기
234/253
post-custom-banner

처음에는 몇 개인지 for 문으로 찾고 다시 for 문을 사용하여 삭제했다. 하지만 길이가 2 이하인 것들이 처리가 안돼서 포기.

그다음에는 투포인터로 풀었다.
s, e에 각각 tmp 노드를 할당하고 e를 먼저 n 만큼 출발 시켜서 간격을 유지했다.
e가 마지막 노드에 도착하면 s 노드를 확인하여 바꿔준다.

class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        tmp = ListNode()
        tmp.next = head
        s = tmp
        e = tmp
        
        for _ in range(n):
            e = e.next
        
        while e.next:
            s = s.next
            e = e.next
        
        s.next = s.next.next
        return tmp.next
profile
smilegate
post-custom-banner

0개의 댓글