LeetCode725. 分隔链表
1. 问题描述

2. 思路

3. 代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func splitListToParts(head *ListNode, k int) []*ListNode {
length := 0
for node := head; node != nil ; node = node.Next {
length++
}
counter, firstCounter := length / k, length % k
res := make([]*ListNode, k)
for i, cur := 0, head; i < k && cur != nil ; i++ {
res[i] = cur
resSize := counter
if i < firstCounter {
resSize++
}
for j := 1; j < resSize; j++ {
cur = cur.Next
}
cur, cur.Next = cur.Next, nil
}
return res
}
这篇文章讲解了如何解决LeetCode题目中将单链表分割成k个相等或接近相等的部分。通过遍历链表获取长度,然后根据长度进行切割,确保每个部分尽可能平均。
295

被折叠的 条评论
为什么被折叠?



