/**
* 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 ListNode[] splitListToParts(ListNode head, int k) {
ListNode node = head;
int num = 0;
while(node!=null){
node = node.next;
num++;
}
ListNode[] res = new ListNode[k];
int l = num/k;
int r = num%k;
node = head;
for(int i=0; i<k&&node!=null; i++){
ListNode ans = node;
int len = l;
if(r>0){
len += 1;
r--;
}
for(int j=0; j<len-1; j++) node = node.next;
ListNode tmp = node.next;
node.next = null;
node = tmp;
res[i] = ans;
}
return res;
}
}
主要是for循环的判断,node不能为空,解决num<k的问题