**题目:
代码:**
class Solution {
public ListNode[] splitListToParts(ListNode root, int k) {
//求出链表的长度
//if(root==null) return root;
ListNode cur=root;
int l=0;
while(cur!=null){
l++;
cur=cur.next;
}
int size=l/k;//每组都有几个节点
int mod=l%k;//多出几个节点 多出几个 就是每组从头再加一个
//定义链表数组
ListNode[] ans=new ListNode[k];
cur=root;//从头开始
//整除尽mod=0
for(int i=0;cur!=null&&i<k;i++){
ans[i]=cur;
int cursize=size+(mod-->0?1:0);//先判断再减
for(int j=0;j<cursize-1;j++){
cur=cur.next;
}
//其他链表重头遍历
ListNode next=cur.next;
cur.next=null;
cur=next;
}
return ans;
}
}