zoukankan      html  css  js  c++  java
  • leetcode 725 Split Linked List in Parts

    1. len/k=a...b,共k个part,每个part有a个节点,余下的b的节点,从第一个节点开始,每个节点多加一个。

    class Solution {
    public:
        vector<ListNode*> splitListToParts(ListNode* root, int k) {
            vector<ListNode*> vec(k,nullptr);
            if(!k) return vec;
            int len=0;
            ListNode* node=root;
            while(node) {
                ++len;
                node=node->next;
            }
            int quo=len/k,rem=len%k;
            vector<int> nums(k,quo);
            for(int i=0;i<rem;++i) {
                ++nums[i];
            }
            node=root;
            for(int i=0;i<nums.size();++i) {
                if(!nums[i]) break;
                vec[i]=node;
                for(int k=nums[i];k>1&&node;--k,node=node->next);
                ListNode* tmp=node->next;
                node->next=nullptr;
                node=tmp;
            }
            return vec;
        }
    };

    2. 

    class Solution {
    public:
        vector<ListNode*> splitListToParts(ListNode* root, int k) {
            vector<ListNode*> vec(k,nullptr);
            if(!k) return vec;
            int len=0;
            ListNode* node=root;
            while(node) {
                ++len;
                node=node->next;
            }
            int quo=len/k,rem=len%k,i=0;
            node=root;
            for(;i<rem;++i) {
                vec[i]=node;
                for(int j=0;j<quo&&node;++j,node=node->next);
                ListNode *tmp=node->next;
                node->next=nullptr;
                node=tmp;
            }
            for(;i<k;++i) {
                if(!node) break;
                vec[i]=node;
                for(int j=0;j<quo-1&&node;++j,node=node->next);
                ListNode *tmp=node->next;
                node->next=nullptr;
                node=tmp;
            }
            return vec;
        }
    };
  • 相关阅读:
    Python深拷贝和浅拷贝解析
    python中count函数的用法
    Jenkins + gitlab + maven 自动打包部署项目
    nio和bio得区别
    nginx负载均衡的5种策略
    接口测试常见bug
    接口自动化面试4
    pass 语句
    if 语句
    while循环
  • 原文地址:https://www.cnblogs.com/LiuQiujie/p/12671348.html
Copyright © 2011-2022 走看看