leetcode 725. Split Linked List in Parts | 725. 分隔链表(Java)
题目
https://leetcode.com/problems/split-linked-list-in-parts/
题解
hint: If there are N nodes in the list, and k parts, then every part has N/k elements, except the first N%k parts have an extra one.
/*** 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) {// 例1: 长度为10的链表, 分成3段, [4 3 3]// 其中,10%3=1段长度为4, 3-1=2段长度为3// 例2: 长度为11的链表, 分成3段, [4 4 3]// 其中,11%3=2段长度为4, 3-1=2段长度为3// 结论: 长度为L的链表, 分成k段, [a个"L/k向下取整", b个"L/k向上取整"]// 其中, a=L%k, b=k-bListNode[] result = new ListNode[k];int L = 0;ListNode node = head;while (node != null) {L++;node = node.next;}int floor = L / k;int ceil = (int) Math.ceil((float) L / k);int a = L % k;int b = k - a;// splitint i = 0;ListNode pre = null;ListNode newHead = head;node = head;for (int j = 0; j < a; j++) {for (int l = 0; l < ceil; l++) {pre = node;node = node.next;}if (pre != null) pre.next = null;else newHead = null;result[i++] = newHead;newHead = node;}for (int j = 0; j < b; j++) {for (int l = 0; l < floor; l++) {pre = node;node = node.next;}if (pre != null) pre.next = null;result[i++] = newHead;newHead = node;}return result;}
}
leetcode 725. Split Linked List in Parts | 725. 分隔链表(Java)相关推荐
- 《LeetCode力扣练习》第206题 反转链表 Java
<LeetCode力扣练习>第206题 反转链表 Java 一.资源 题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2, ...
- 《LeetCode力扣练习》第160题 相交链表 Java
<LeetCode力扣练习>第160题 相交链表 Java 一.资源 题目: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表不存 ...
- 《LeetCode力扣练习》第141题 环形链表 Java
<LeetCode力扣练习>第141题 环形链表 Java 一.资源 题目: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针 ...
- LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题
题目地址:Reverse Linked List II - LeetCode Reverse a linked list from position m to n. Do it in one-pass ...
- LeetCode -剑指Offer 06 - 从尾到头打印链表 - java - 细喔
文章目录 题目 题目解析 解题思维 代码如下 代码细节 - 逆序 附加内容 题目 题目解析 题目目的很直接!就是想让你从链表尾结点开始到头节点结束,将每个节点的val 装入一个数组里,并将其返回. ...
- 【回文串7】LeetCode 234. Palindrome Linked List
LeetCode 234. Palindrome Linked List Solution1:我的答案 一遍过,哈哈哈! /*** Definition for singly-linked list. ...
- 【??链表】LeetCode 92. Reverse Linked List II
LeetCode 92. Reverse Linked List II Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4306611.html ...
- 《LeetCode力扣练习》剑指 Offer 25. 合并两个排序的链表 Java
<LeetCode力扣练习>剑指 Offer 25. 合并两个排序的链表 Java 一.资源 题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: ...
- 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java
<LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...
最新文章
- arthas-Java诊断工具
- SQL2005以上版本派生表更新
- uva 11020 - Efficient Solutions
- 深度学习入门笔记系列(一)——深度学习框架 tensorflow 的介绍与安装
- Linux安装或升级openssh步骤和可能遇到的问题
- 【2018ACM山东省赛 - C】Cities(最小生成树变形优化,贪心思维)
- Oracle12081,【Oracle介质】Oracle 12C Linux x86-64 最新OPatch patch 6880880 12.2.0.1.7
- Spring+Spring Boot+Mybatis框架注解解析
- 中文版Postman测试需要登陆才能访问的接口(基于Cookie)
- 【C++】gflags的使用
- 2020长安杯网站重构部分
- theano学习--theano.function
- 樊登读书赋能读后感_《赋能》读后感心得体会
- neural networks logistic regression 神经网络逻辑回归
- 从修复 testerhome(rubychina)网站的一个 bug 学习 rubyrails on ruby
- 周迅是永远的精灵,不接受反驳
- 英语快照1---英语正能量
- 蓝牙BQB认证所需资料和流程
- 【Python编程】三步完成如何从视频中提取音频?
- 【Scala】Scala的偏函数和偏应用函数