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
'Leetcode' 카테고리의 다른 글
[LeetCode] Isomorphic Strings 파이썬 (0) | 2021.04.05 |
---|---|
[LeetCode] Count Primes 파이썬 (0) | 2021.04.04 |
[LeetCode] Happy Number 파이썬 (dict, cycle) (0) | 2021.04.04 |
[LeetCode] Fatorial Trailing Zeros 파이썬 (dp) (0) | 2021.04.03 |
[LeetCode] Excel Sheet Column Number 파이썬 (ord) (0) | 2021.04.03 |
댓글