将链表分成多少段,依据nums数组的元素来分,如果连续的链表元素存在于链表之中,那就是一段
这一题比较好解决,判断的时候直接判断当前节点current是否存在于nums中,以及current.next是否存在nums中,如果不存在,那么就可以进行分割计数
var numComponents = function (head, nums) {
let set = new Set(nums)
let cnt = 0
while (head) {
// 当前节点存在set中,且下一节点不存在set中
if (set.has(head.val) && (!head.next || !set.has(head.next.val))) {
cnt++
}
head = head.next
}
return cnt
};