此处均匀分布节点个数,有个模运算,余数应当小于划分数,然后前面小于等于余数的每个划分额外多分得一个节点。part_szie = q +(1 if i<r else 0)
Python
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclassSolution:defsplitListToParts(self, head: ListNode, k:int)-> List[ListNode]:
temp = head
count =0while temp:
count +=1
temp = temp.next
q, r = count//k, count%k
parts =[Nonefor _ inrange(k)]
i, current =0, head
while i<k and current:
parts[i]= current
part_size = q+(1if i<r else0)for item inrange(part_size-1): current = current.next
next_part = current.next
current.next=None
current = next_part
i +=1return parts