首页 > 其他 > 详细

[leetcode]725. Split Linked List in Parts链表分块

时间:2018-02-11 20:40:33      阅读:178      评论:0      收藏:0      [点我收藏+]

思路很简单  按时链表的题做起来很容易犯小错误,思维要缜密

还要多练习啊

做之前最好画算法框图

public ListNode[] splitListToParts(ListNode root, int k) {
        ListNode[] res = new ListNode[k];
        int count = 0;
        ListNode temp = root;
        //计算长度
        while (temp!=null)
        {
            count++;
            temp = temp.next;
        }
        //计算链表长度
        int size = count/k;
        int a = size;
        int y = count%k;
        ListNode sta = root;
        //前几个多的
        for (int i = 0; i < y; i++) {
            ListNode cur = root;
            while (size>0&&root!=null)
            {
                root = root.next;
                size--;
            }
            size = a;
            sta = root.next;
            root.next = null;
            root = sta;
            res[i] = cur;
        }
        //后几个少的
        for (int i = y; i < k; i++) {
            ListNode cur = root;
            while (size>1&&root!=null)
            {
                root = root.next;
                size--;
            }
            size = a;
            if (root!=null) {
                sta = root.next;
                root.next = null;
            }
            else sta = null;
            root = sta;
            res[i] = cur;
        }
        return res;
    }

 

[leetcode]725. Split Linked List in Parts链表分块

原文:https://www.cnblogs.com/stAr-1/p/8443124.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!