LeetCode题解之Split Linked List in Parts
1、题目描述
2、题目分析
主要是理解题意,将每个子链表应该分得的节点个数计算清楚。利用除数和余数的方法进行计算。
3、代码
vector<ListNode*> splitListToParts(ListNode* root, int k) {
vector<ListNode*> res(k, NULL);
if (root == NULL) {
return res;
} int listlen = ;
ListNode *p = root;
while (p != NULL) {
listlen++;
p = p->next;
} int m = listlen / k;
int n = listlen % k; if (m == ) {
p = root;
for (int i = ; i < n; i++) {
res[i] = p;
ListNode *pn = p->next;
p->next = NULL;
p = pn;
}
} else {
p = root;
int i;
for(i = ; i < k; i++) {
ListNode *pn;
res[i] = p;
int step = (i < n)? m:m-;
while(step--) {
p = p->next;
}
pn = p->next;
p->next = NULL;
p = pn;
if (p == NULL)
break;
}
} return res; }
LeetCode题解之Split Linked List in Parts的更多相关文章
- 【LeetCode】725. Split Linked List in Parts 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【Leetcode】725. Split Linked List in Parts
Given a (singly) linked list with head node root, write a function to split the linked list into k c ...
- Python解Leetcode: 725. Split Linked List in Parts
题目描述:给定一个单链表,写一个函数把它分成k个单链表.分割成的k个单链表中,两两之间长度差不超过1,允许为空.分成的k个链表中,顺序要和原先的保持一致,比如说每个单链表有3个结点,则第一个单链表的结 ...
- LC 725. Split Linked List in Parts
Given a (singly) linked list with head node root, write a function to split the linked list into k c ...
- [LeetCode] Split Linked List in Parts 拆分链表成部分
Given a (singly) linked list with head node root, write a function to split the linked list into k c ...
- #Leetcode# 725. Split Linked List in Parts
https://leetcode.com/problems/split-linked-list-in-parts/ Given a (singly) linked list with head nod ...
- LeetCode 725. Split Linked List in Parts (分裂链表)
Given a (singly) linked list with head node root, write a function to split the linked list into k c ...
- LeetCode 725. Split Linked List in Parts(分隔链表)
题意:将原链表分隔成k个链表,要求所有分隔的链表长度差异至多为1,且前面的链表长度必须大于等于后面的链表长度. 分析: (1)首先计算链表总长len (2)根据len得到分隔的链表长度要么为size, ...
- [leetcode]725. Split Linked List in Parts链表分块
思路很简单 按时链表的题做起来很容易犯小错误,思维要缜密 还要多练习啊 做之前最好画算法框图 public ListNode[] splitListToParts(ListNode root, in ...
随机推荐
- Mac下安装Eclipse和Tomcat等
Mac下做Java开发还是很方便的,不用像.NET开发一样在Parallel Desktop里面安装Windows虚拟机,Mac下面默认已经安装了JDK. 当然,你如果要安装JDK7,请先阅读:htt ...
- Jenkins-pipeline的实现步骤
jenkins实现持续集成 搭建jenkins环境,安装插件 建立pipeline公用类库,文件夹vars,默认的 添加.groovy文件,可以由以下几个类库组成 dockerImageBuild 负 ...
- hadoop家族成员
1.概述 使用hadoop已经有一段时间了,从最开始懵懂到迷茫,再到各种阅读与写作,再到如今各种组合应用,逐渐已经离不开hadoop了,hadoop在大数据行业的成功,加速了它本身的发展,各大社区都能 ...
- 异常处理:net.sf.cglib.beans.BulkBeanException
今天下午由于各种开会,断断续续写得代码,单元测试的时候,老是报如题的错误,后来查阅资料,发现原来是从数据库查询的值如果为空,则对应实体类执行set方法会赋值null给对应属性值,但是我当时的几个值偏偏 ...
- JavaScript 视频教程 收藏
001 JavaScript第1章 JavaScript概述 https://www.365yg.com/group/6410923214495940866/ 001 JavaScript第1章 Ja ...
- a no-risk path to IEEE P1687
You’ve heard all about IJTAG (IEEE P1687) [1,2,3], a new standard for accessing embedded test and d ...
- Java 容器源码分析之HashMap多线程并发问题分析
并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问题,所以需要变成多 ...
- 使用vertical-align实现垂直对齐
关于垂直对齐,之前研究过好几次了,但感觉每次都没研究透彻,做了几个效果,就觉得自己掌握了,实在是自欺欺人.真乃搞技术的大忌. 这两天又下定决心重新开始研究vertical-allign这个高深莫测的属 ...
- C#中HttpWebRequest的用法详解
原文链接:http://www.cnblogs.com/love201314/p/5029312.html 1.HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数 ...
- Net is as typeof 运行运算符详解
概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Time Type Identification),通过运 ...