817. Linked List Components
- Linked List Components python solution
题目描述
We are given head, the head node of a linked list containing unique integer values.
We are also given the list G, a subset of the values in the linked list.
Return the number of connected components in G, where two values are connected if they appear consecutively in the linked list.
解析
题目比较好理解,只需要计算head中相连的部分在G中有几个。
这里特别需要注意,题目中给的例子1认为[3]也是相连部分,这表明即使单个数字存在也算一个相连部分!
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def numComponents(self, head: ListNode, G: List[int]) -> int:
G, cnt, prev = set(G), 0, None
while head:
if head.val in G and prev not in G:
cnt += 1
prev, head = head.val, head.next
return cnt
Reference
https://leetcode.com/problems/linked-list-components/discuss/123842/C%2B%2BJavaPython-Easy-and-Concise-Solution-with-Explanation