zoukankan      html  css  js  c++  java
  • [leetcode]725. Split Linked List in Parts链表分块

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

    还要多练习啊

    做之前最好画算法框图

    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;
        }
  • 相关阅读:
    package.json文件
    Node.js中模块加载机制
    第三方模块
    系统模块
    Node.js快速入门及模块化开发
    String 的扩展方法
    ES6 的内置对象扩展
    箭头函数
    解构赋值
    let、const、var 的区别
  • 原文地址:https://www.cnblogs.com/stAr-1/p/8443124.html
Copyright © 2011-2022 走看看