817 Linked List Components
Python
class Solution(object):
def numComponents(self, head, G):
"""
:type head: ListNode
:type G: List[int]
:rtype: int
"""
Gset = set(G)
cur = head
ans = 0
while cur:
if cur.val in Gset and (cur.next is None or cur.next.val not in Gset):
ans += 1
cur = cur.next
return ans
Java
class Solution {
public int numComponents(ListNode head, int[] G) {
Set<Integer> Gset = new HashSet();
for (int x: G) Gset.add(x);
ListNode cur = head;
int ans = 0;
while (cur != null) {
if (Gset.contains(cur.val) &&
(cur.next == null || !Gset.contains(cur.next.val)))
ans++;
cur = cur.next;
}
return ans;
}
}