需要仔细看题,他是说要计算组件的个数,而不是最大的长度。
ps:吐血,写代码写错了,看了题解才知道求组件的个数
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public int numComponents(ListNode head, int[] nums) {
if (nums.length == 0){
return 0;
}
Set<Integer> set = new HashSet<>();
for (int num : nums){
set.add(num);
}
int res = 0;
while (head != null){
// 记录当前最大的连续值
if (set.contains(head.val) && (head.next == null || !set.contains(head.next.val))){
res++;
}
head= head.next;
}
return res;
}
}