【leetcode】817. 链表组件

56 阅读1分钟

leetcode-817.png

将链表分成多少段,依据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
};