Split Linked List in Parts(LeetCode725)

2023-05-16

参加LeetCode weekly contest 58时的一道价值5分的题,是关于数据结构的

要求将一个链表均分为k份,如果不能均分(例如链表有6个节点而k=5),则各个部分差不能大于1,链表中允许为空

解题思路:

     我是先求出链表的长度记为llen,然后llen / k得到每一部分赢至少有几个节点,记为n;然后用llen mod k求出有几个链表需要多加1个节点记为c;剩下的操作就是添加节点了,定义一个指针p用来指向要被添加的元素,一直移动就好了

AC代码

#encoding:utf-8
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def splitListToParts(self, root, k):
        """
        :type root: ListNode
        :type k: int
        :rtype: List[ListNode]
        """
        llen = 0;
        myList = []
        
        #计算root的长度
        p = root
        while p is not None:
            llen = llen+1
            p = p.next
        
        #计算最少的部分有几个元素
        #计算有几部分多出一个元素
        n = llen / k;
        c = llen % k;
        
        p = root #指向要被选择的元素

        #加入列表
        for i in range(0,k):
            head = ListNode(1) #每一部分的头
            if n == 0 and i >= c:
                myList.append(None)
            else:
                q = head
                if i < c:
                    for j in range(0,n+1):
                        q.next = p
                        p = p.next
                        q = q.next
                        q.next = None
                        
                else:
                    for j in range(0,n):
                        q.next = p
                        p = p.next
                        q = q.next
                        q.next = None
                        
                head = head.next
                myList.append(head)
        
        return myList


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Split Linked List in Parts(LeetCode725) 的相关文章

  • Python 字符串到 SQL IN 参数的列表

    我在 python 中有这个查询 ssim group S1200 S1300 query select WIPMessageCnt from waferdata where recipename in s and equipment an
  • 您可以使用 Openpyxl 将全名拆分为名字和姓氏吗?

    我有一个 Excel 文件 我一直在尝试使用 openpyxl 将列 全名 拆分为两个单独的名字和姓氏列 例如 我有 from openpyxl import Workbook load workbook wb load workboo p
  • 如何在 Python 中从平面列表构建嵌套列表? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个简单的列表 例如 flat 1 1 1 1 1 1 1 2 2 2 1 2 2 3 我需要转换为嵌套列表 其中每个级别 破折号后跟数
  • 合并多个列表

    鉴于我有一个列表列表 List
  • 如何从字典列表中查找键的值?

    如何从字典列表中获取给定键的值 mylist powerpoint color blue client name Sport Parents Regrouped sort order ascending chart layout 1 cha
  • Lua中按字符分割字符串

    我有像这样的字符串 ABC DEF 我需要将它们分开 字符并将两个部分分别分配给一个变量 在 Ruby 中 我会这样做 a b ABC DEF split 显然Lua没有这么简单的方法 经过一番挖掘后 我找不到一种简短的方法来实现我所追求的
  • 如何在 Python 中将图像分割成多个部分

    我正在尝试使用 PIL 将一张照片分成多块 def crop Path input height width i k x y page im Image open input imgwidth im size 0 imgheight im
  • 省略号列表[...]并将列表连接到自身[重复]

    这个问题在这里已经有答案了 EDIT 我在最初的例子中很粗心 当我添加列表时不会发生该行为A本身 而是当我添加一个列表时含有 list A to A本身 请参阅下面更正的示例 我试图理解省略号如何列出 那些显示为 当你有一个列表引用本身时发
  • 列表到优先队列

    我有一个 C 大学编程项目 分为两个部分 在开始第二部分时应该使用priority queues hash tables and BST s 我 至少 在优先级队列方面遇到了麻烦 因为它迫使我自己重做第一部分中已经实现的许多代码 该项目是关
  • 使用 Linq 返回具有最大计数的列表

    使用 C 和 Linq 如何返回具有最大大小 计数的 List 我假设您有一个名为的列表集合lists并且您想要返回此集合中元素最多的列表 如果是这样 请尝试以下操作 var listWithLargestCount lists Order
  • 如何将 Python 字典序列化为字符串,然后再序列化回字典?

    如何将 Python 字典序列化为字符串 然后再序列化回字典 字典中将包含列表和其他字典 这取决于您想用它做什么 如果您只是想保存它 您应该使用pickle https docs python org 3 library pickle ht
  • 如何在 Python 中连接两个列表?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在 Python 中连接两个列表 Example listone 1 2 3 lis
  • Python-使用元组作为列表索引[重复]

    这个问题在这里已经有答案了 我有一个元组列表 tuples list 1 0 2 3 3 2 2 0 我想访问二维数组的元素a例如 使用其中一些元组 for i in range 3 print a tuples list i 应该输出的值
  • 如何在 switch 语句中将向量作为参数传递

    我对问题的谷歌搜索没有返回有用的结果和文档 switch没有告诉我如何做 所以我希望我能在这里得到答案 假设我有一个向量 cases lt c one two three 我想使用 switch 语句并将这些元素作为 switch 语句的参
  • 如何从Python列表中的字符串中删除双引号?

    我正在尝试在字典列表中获取一些数据 数据来自 csv 文件 因此都是字符串 文件中的键都有双引号 但由于这些都是字符串 我想删除它们 这样它们在字典中看起来像这样 key value 而不是这个 key value 我尝试简单地使用 str
  • C# 如何单击 IList 中的 IWebelement?

    所以我尝试单击 YouTube 上的按钮 但我无法通过 Xpath 找到该按钮 因为按钮太多 所以我尝试将它们保存在 IList 中 现在我想单击列表中的特定按钮 ChromeDriver chrome new ChromeDriver L
  • 未捕获的类型错误:无法读取未定义的属性“split”

    使用 JavaScript 分割日期并重新排列格式 日期通过 json feed 以 YYYY MM DD 形式提供 为了获得日期 我这样做 var og date v report totalItems 1 inspection date
  • Python 将列表追加到列表中

    我正在尝试编写一个通过矩阵的函数 当满足条件时 它会记住该位置 我从一个空列表开始 locations 当函数遍历行时 我使用以下方法附加坐标 locations append x locations append y 函数末尾的列表如下所
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio

随机推荐

  • UVA227解题报告

    因为网格中存在空格所以用gets录入 xff0c 首先录入一行数据 xff0c 如果第一个字符为 39 Z 39 则break退出循环 其次是对指令的接受与处理 接受指令可以用getchar xff0c 遇到换行符跳过 处理也很简单 xff
  • win10/win11系统 如何将7-zip设置为默认软件?

    步骤 第一步 xff0c 首先下载7 zip第二步 xff0c 点击下载的7 zip安装包第三步 xff0c 进入你安装7 zip的文件夹下 xff0c 然后找到7 Zip File Manager第四步 xff0c 右键以管理员权限运行7
  • 南阳理工OJ915解题报告

    描述 Shiva得到了两个只有加号和减号的字符串 xff0c 字串长度相同 Shiva一次可以把一个加号和它相邻的减号交换 他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串 你现在要去帮助他完成那个这个问题 输入 多组测试数据
  • Color the fence

    Color the fence 时间限制 xff1a 1000 ms 内存限制 xff1a 65535 KB 难度 xff1a 2 描述 Tom has fallen in love with Mary Now Tom wants to s
  • SDUT 1008最长公共子序列

    题目链接 https acm sdut edu cn onlinejudge2 index php Home Index problemdetail pid 1008 html 分析 题目类型 xff1a 变维DP 状态定义 对于动态规划而
  • 南阳理工OJ73

    比大小 时间限制 xff1a 3000 ms 内存限制 xff1a 65535 KB 难度 xff1a 2 描述 给你两个很大的数 xff0c 你能不能判断出他们两个数的大小呢 xff1f 比如123456789123456789要大于 1
  • Unable to locate JAR/zip in file system as specified by the driver definition: mysql-connector-java-

    第一次用eclipse配置hibernate映射 xff0c 结果遇到了这种错误 怎么办 xff1f 别担心 xff0c 解决方案送上来 找到对话框里的JAR List选项 xff0c 点击clear把所有的jar包删掉再重新把jar包导入
  • Flask网页出现UnicodeDecodeError

    具体错误 xff1a UnicodeDecodeError 39 utf8 39 codec can 39 t decode byte 0xd6 in position 46 invalid continuation byte 如图 这是怎
  • 实用函数之计算某天是星期几

    功能 xff1a 给你一个日期 xff0c 计算出这一天是星期几 适用范围 xff1a 只对1600年以后的日期有效 实现语言 xff1a C C 43 43 acm相关题目 xff1a An problem about date 相关资料
  • 差分标记讲解

    引论 维护区间信息的数据结构有很多 xff0c 像线段树 树状数组等 xff1b 然而线段树之类的数据结构往往要写上一段板子 xff08 尽管不是太长 xff09 xff0c 但在算法竞赛中却很有可能导致我们与别人慢上那么几分钟 xff0c
  • 使用Flask渲染静态网页(模板)

    假设我们有了一个已经写好的网页 xff0c 我们希望把这个网页展示出来 xff0c 我们需要怎么做呢 xff1f 在Flask中我们把这一工作叫做渲染模板 xff0c 其中我们准备好的网页叫做模板 xff0c 渲染工作交给一个叫做jinja
  • Linux常用指令(初级)

    1 ls 显示当前目录下的所有文件和文件名 2 mkdir xxx xff1a 创建一个名为xxx的目录 3 touch xxx txt xff1a 创建一个名为xxx txt的文件 4 rm xxx txt xff1a 删除名为xxx t
  • 最受欢迎的菜品

    7 2 最受欢迎的菜品 20分 某自助餐厅要求餐厅的客人在就餐后进行投票 xff0c 选出一款最喜爱的菜品 xff0c 每日营业结束后进行投票统计 xff0c 选出投票数最多的菜品为最受欢迎的菜品 请编写一个程序帮助餐厅快速完成这个统计工作
  • DOS查看端口占用情况并杀死占用某个端口的进程

    输入指令 netstat ano即可查看端口占用情况 找到自己想杀死的进程 xff0c 输入指令 xff1a taskkill PID 进程ID即可杀死进程 如果显示无法杀死 xff0c 可以强杀 xff0c 即输入指令 xff1a tas
  • Error:(37, 13) Failed to resolve: com.android.support:appcompat-v7:26 <a href="install.m2.repo">Inst

    报错信息 xff1a Error 37 13 Failed to resolve com android support appcompat v7 26 lt a href 61 34 install m2 repo 34 gt Insta
  • ACM中使用唯一分解定理

    一 求出整数n的素数因子 二 求出各素数因子的指数 三 利用这两组数据求解
  • 进程与程序的区别

    1 进程是动态的 xff0c 程序是静态的 2 进程有生命周期 xff0c 程序没有生命周期 3 一个进程只能对应一个程序 xff0c 一个程序却可以对应多个进程 没有建立进程的程序不能作为一个独立的单位获得操作系统的认可
  • 轻松上手vim

    vim是一款相当不错的文本编译器 xff0c 让我来介绍一下vim的基本使用方法 首先新建一个文件 xff0c 例如main cpp 命令为touch main cpp 然后使用vim打开 xff0c 命令为vim main cpp xff
  • AtCoder Regular Contest 085 C题题解

    通过给出的样例找出规律如下 xff1a 设循环的次数为k xff0c 则 k 61 2 m 设每次循环的花费为c xff0c 则 c 61 xff08 n m xff09 100 43 m 1900 故总的运行时间 x 61 k c 代码如
  • Split Linked List in Parts(LeetCode725)

    参加LeetCode weekly contest 58时的一道价值5分的题 xff0c 是关于数据结构的 要求将一个链表均分为k份 xff0c 如果不能均分 xff08 例如链表有6个节点而k 61 5 xff09 xff0c 则各个部分