zoukankan      html  css  js  c++  java
  • 725. 分隔链表

    给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。

    每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。

    这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。

    返回一个符合上述规则的链表的列表。

    举例: 1->2->3->4, k = 5 // 5 结果 [ [1], [2], [3], [4], null ],隔离部分无联系

     1 public class SplitLinkedListinParts {
     2     static class ListNode {
     3         int val;
     4         ListNode next;
     5         ListNode(int x) {
     6             val = x;
     7         }
     8     }
     9     public ListNode[] splitListToParts(ListNode root, int k) {
    10         ListNode cur = root;
    11         ListNode[] result = new ListNode[k];
    12         int len = 0;
    13         while(cur != null) {
    14             len++;  //获取长度
    15             cur = cur.next;
    16         }
    17         int size = len / k;  
    18         int mod = len % k;   
    19         cur = root;
    20         for(int i = 0; i < k && cur != null; i++) {
    21             int cursize = size + (mod-- > 0 ? 1 : 0);  //保证前面长的部分只多一个
    22             result[i] = cur;  
    23             for(int j = 1; j < cursize; j++) {   //分割
    24                 cur = cur.next;
    25             }
    26             ListNode next = cur.next;  //隔离部分最后一个结点和下一部分的第一个结点断绝联系
    27             cur.next = null;
    28             cur = next;
    29         }
    30         return result;
    31     }
    32 }
    无论有多困难,都坚强的抬头挺胸,人生是一场醒悟,不要昨天,不要明天,只要今天。不一样的你我,不一样的心态,不一样的人生,顺其自然吧
  • 相关阅读:
    array方法(一)
    浅谈开发中所注意的问题
    缩略图初版
    Finite State Machine
    mMathf -》 Unity3d通用脚本
    Follow Path -》 Unity3d通用脚本
    Google 网站打不开
    MonoBehaviour.StopCoroutine
    Tutorial Unity 4 apk splitting into OBB for google play
    NGUI List<EventDelegate> 小坑
  • 原文地址:https://www.cnblogs.com/xiyangchen/p/11061138.html
Copyright © 2011-2022 走看看