LeetCode817. 链表组件
1. 问题描述
2. 思路
3. 代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func numComponents(head *ListNode, nums []int) int {
var res int
numsCounter := map[int]int{}
for i := 0; i < len(nums); i++ {
numsCounter[nums[i]]++
}
cur := head
for cur != nil {
_, ok := numsCounter[cur.Val]
if ok && (cur.Next == nil || contains(numsCounter, cur.Next.Val) == false) {
res++
}
cur = cur.Next
}
return res
}
func contains(numsCounter map[int]int, key int) bool {
if _,ok := numsCounter[key]; ok {
return true
}
return false
}