![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 58
触不可及啊
这个作者很懒,什么都没留下…
展开
-
LeetCode 725. 分隔链表
先遍历得出节点个数,并计算好分隔后的每一块链表的长度,如果无法平均分则以从前到后的顺序让余数个的链表长度+1。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1。这可能会导致有些部分为 null。最后一个元素 output[4] 为 null ,但它作为 ListNode 的字符串表示是 []。输入被分成了几个连续的部分,并且每部分的长度相差不超过 1。前面部分的长度大于等于后面部分的长度。个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。原创 2023-10-28 23:31:08 · 43 阅读 · 1 评论 -
LeetCode 147. 对链表进行插入排序
(3)再把这个temp节点与cur左边的节点进行排序然后连接,这里的排序我们又要用到一个指针pre,我们让它指向dummy,当temp->val >=pre->next->val,意味着temp保存的值比cur左边第一个值大,不符合条件,我们将pre指向下一个节点,pre指针移动直到pre的下一个节点的值更大,我们就将temp插入这个更大的节点之前,注意插入的时候要先从尾部连接,否则我们会找不到下一个节点。(5)循环操作,一直到head的所有节点的遍历完,这个时候我们就已经排好了顺序。对链表进行插入排序。原创 2023-10-26 01:38:41 · 54 阅读 · 0 评论 -
LeetCode 143. 重排链表
观察重排后的链表,可以大致拆分成两个部分组成,由半部分的升序序列部分和后半部分降序序列经过穿插组成,所以这里我们会用到将链表从中间分成两半的方法,再将后半部分链表反转,最后再逐个穿插在一起。(1)封装一个查找中间节点的函数,这里运用到快慢指针的思想,当快指针f(即fast)到达尾端时,慢指针s到达中间,并返回中间节点。(3)反转后半部分链表,这里封装一个链表反转的函数,不清楚的可以去看看前面的反转链表专题。(4)穿插链表,封装一个无返回值的穿插函数(自己定义)(2)将链表分成两部分。原创 2023-10-26 22:56:27 · 62 阅读 · 0 评论 -
LeeCode 234. 回文链表
else{原创 2023-10-26 23:18:13 · 57 阅读 · 0 评论 -
LeetCode 25. K 个一组翻转链表
链表题的解法大体都有相似的地方,先确定要用到些什么步骤和功能,再通过画图模拟过程来加深对过程的理解,再将图里面的东西转换成算法语言即可。原创 2023-10-27 01:21:37 · 41 阅读 · 1 评论