原题链接:https://leetcode-cn.com/problems/split-linked-list-in-parts/

vector<ListNode*> splitListToParts(ListNode* root, int k) {vector<ListNode*> ans;ListNode *p=root;int len=0;while(p!=NULL){//先计算出链表长度len++;p=p->next;}p=root;if(len<k){//如果长度比k小,直接分隔并且返回while(p!=NULL){ListNode *tmp=p;p=p->next;tmp->next=NULL;ans.push_back(tmp);}int c=k-len;while(c--){ans.push_back(NULL);}return ans;}int x=len/k;//子链表长度int y=len%k;//剩余的节点数ListNode *q=root;p=root;while(p!=NULL){int count=x;while(count>1){count--;q=q->next;}if(y>0){//将剩余节点平均分配给前面的子链表q=q->next;}ListNode *tmp=p;p=q->next;q->next=NULL; q=p;ans.push_back(tmp);y--;}return ans;
}

改进

vector<ListNode*> splitListToParts(ListNode* root, int k) {   ListNode *p=root;int len=0;while(p!=NULL){len++;p=p->next;}vector<ListNode*> ans(k,NULL);//提前设置ans空间,并且初始化为NULLint x=len/k;int y=(k<=len)?len%k:0;//y是剩余节点,如果k>len,将没有剩余节点ListNode *q=root;p=root;int i=0;while(p!=NULL){int count=x;while(count>1){count--;q=q->next;}if(y>0){q=q->next;}ListNode *tmp=p;p=q->next;q->next=NULL; q=p;ans[i++]=tmp;y--;}return ans;
}

leetcode算法题--分隔链表相关推荐

  1. leetcode算法题--分隔链表★

    原题链接:https://leetcode-cn.com/problems/partition-list/ 1.双指针 ListNode* partition(ListNode* head, int ...

  2. leetcode算法题--重排链表★

    原题链接:https://leetcode-cn.com/problems/reorder-list/ 1.map void reorderList(ListNode* head) {map<i ...

  3. leetcode算法题--排序链表★

    原题链接:https://leetcode-cn.com/problems/sort-list/ 1.归并排序(递归版) ListNode* sortList(ListNode* head) {if( ...

  4. leetcode算法题--相交链表

    原题链接: https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ https://leetcode-cn.com/pro ...

  5. leetcode算法题--环形链表 II★

    原题链接:https://leetcode-cn.com/problems/linked-list-cycle-ii/ 1.map ListNode *detectCycle(ListNode *he ...

  6. leetcode算法题--有序链表转换二叉搜索树★

    原题链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/ 1.二分法+递归 TreeNode* ...

  7. leetcode算法题--反转链表 II★

    原题链接:https://leetcode-cn.com/problems/reverse-linked-list-ii/ 1.头插法 ListNode* reverseBetween(ListNod ...

  8. leetcode算法题--旋转链表

    原题链接:https://leetcode-cn.com/problems/rotate-list/ 1.双指针法 相关题目:删除链表的倒数第N个节点 ListNode* rotateRight(Li ...

  9. leetcode算法题--删除链表的倒数第N个节点

    原题链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 双指针法 ListNode* removeNthFrom ...

最新文章

  1. 谈谈离职和跳槽(copy)
  2. azure java_Azure File服务(5): Java开发
  3. lucene索引文件大小优化小结
  4. 并发编程-26 高并发处理手段之服务降级与服务熔断 + 数据库切库分库分表
  5. asp关于从utf8页面到gb2312页面出现乱码得解决
  6. 读“苹果上周发布了Mac OS X Mountain Lion系统”新闻的感想
  7. pyculiarity解决报错ValueError: data must be a 2 column data.frame, with thefirst column...
  8. 汽车故障检测仪计算机教程,如何使用汽车故障诊断仪进行汽车维修
  9. 流水线、超流水线、超标量(superscalar)技术对比
  10. android7.1.2 xposed,安卓7.1 xposed框架
  11. 战矛在线Java_战矛在线职业选择攻略 最强职业推荐
  12. VUE发送POST请求自动附带本地地址
  13. 服务器的网络不稳定是什么原因,家里网络不稳定是什么原因
  14. win10下速腾聚创RS-Lidar-32配置教程
  15. Python薅羊毛脚本
  16. leetcode题目: 数字的补数 的C语言解法
  17. 访问限制和身份验证和虚拟主机配置的三种方式
  18. uni-app二维码、条形码扫码自定义
  19. android java json_探究Android系统中解析JSON数据的方式
  20. 灰度共生矩阵特征提取步骤_灰度共生矩阵纹理特征提取的Matlab实现

热门文章

  1. python代码案例详解-Python综合应用名片管理系统案例详解
  2. python怎么检查错误-错误处理
  3. python项目归纳总结-python商城项目总结
  4. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么
  5. winpython使用教程-如何使用Python自动控制windows桌面
  6. python用途与前景-python能用来干什么
  7. python读取中文-python读取中文txt文本
  8. python游戏-Python游戏
  9. Opengl-光照章节学习成果
  10. TabHost的使用(一)