본문 바로가기
Leetcode

[LeetCode] Remove Linked List Elements 파이썬 (linked list)

by YGSEO 2021. 4. 4.
728x90
class Solution:
    # @param {ListNode} head
    # @param {integer} val
    # @return {ListNode}
    def removeElements(self, head, val):
        dummy = ListNode(float("-inf"))
        dummy.next = head
        prev, curr = dummy, dummy.next

        while curr:
            if curr.val == val:
                prev.next = curr.next
            else:
                prev = curr

            curr = curr.next

        return dummy.next

 

dummy를 만들고

 

dummy의 카피인 prev, curr 2개를 만들어서 문제해결


dummy 하나만 쓰고 하는 풀이

class Solution:
    def removeElements(self, head: ListNode, val: int) -> ListNode:
#        if not head:
#            return head
#        while head.val == val:
#            head = head.next
#            if not head:
#                return head
        root = ListNode(0)
        root.next = head
        node = root
        while node.next:
            if node.next.val == val:
                node.next = node.next.next
            else:
                node = node.next
        return root.next

 

728x90

댓글