Medium
Linked List Components — Python
Full explanation · Time O(m + n) · Space O(m)
# Time: O(m + n), m is the number of G, n is the number of nodes
# Space: O(m)
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
class Solution(object):
def numComponents(self, head, G):
"""
:type head: ListNode
:type G: List[int]
:rtype: int
"""
lookup = set(G)
dummy = ListNode(-1)
dummy.next = head
curr = dummy
result = 0
while curr and curr.next:
if curr.val not in lookup and curr.next.val in lookup:
result += 1
curr = curr.next
return result