题目地址:Reverse Linked List II - LeetCode


Reverse a linked list from position m to n. Do it in one-pass.

Note: 1 ≤ m ≤ n ≤ length of list.

Example:

Input: 1->2->3->4->5->NULL, m = 2, n = 4
Output: 1->4->3->2->5->NULL

这道题目是我之前做一家公司笔试时候遇到的算法题,反转部分链表,难度比反转全部链表大。

当时做题的时候不会告诉你错误的样例,现在重新写,在特殊情况的判断中依然会有出错,以后需要重新再做。

Python解法如下:

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:def helper(reverse_head, count):if reverse_head is None:return reverse_headcurr = reverse_headprev = Nonefor _ in range(0, count):next_node = curr.nextcurr.next = prevprev = currcurr = next_nodereverse_head.next = currreturn previf n - m == 0:return headreverse_before_head = headif m == 1:reverse_head = helper(reverse_before_head, n - m + 1)return reverse_headfor _ in range(1, m - 1):reverse_before_head = reverse_before_head.nextreverse_head = helper(reverse_before_head.next, n - m + 1)reverse_before_head.next = reverse_headreturn head

时间复杂度为O(n),空间复杂度为O(1)。

LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题相关推荐

  1. 【??链表】LeetCode 92. Reverse Linked List II

    LeetCode 92. Reverse Linked List II Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4306611.html ...

  2. LeetCode 92. Reverse Linked List II

    92. Reverse Linked List II Reverse a linked list from position m to n. Do it in one-pass. 将位置m的链接列表反 ...

  3. (LeetCode 92)Reverse Linked List II

    Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1-> ...

  4. 92. Reverse Linked List II

    题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 解题思路: 1 /** 2 * Definition for singly-lin ...

  5. 92. Reverse Linked List II(反转链表II)

    题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 思路: 先找到需要反转部分的首部,然后依次压栈, 最后出栈,连接即可. AC 2m ...

  6. let 92. Reverse Linked List II

    主题思想: 链表翻转: 链表翻转, 链表翻转经典代码: public ListNode reverseList(ListNode head){if(head==null||head.next==nul ...

  7. LeetCode | Reverse Linked List II

    这道链表反转题也是搞的我焦头烂额,好久没有写链表了,注意记忆这些 Reverse Linked List II QuestionEditorial Solution My Submissions To ...

  8. Leetcode 206. Reverse Linked List

    Similar Questions Reverse Linked List II Binary Tree Upside Down Palindrome Linked List 思路:链表反转. 解法一 ...

  9. LeetCode 547. Friend Circles--Python解法--笔试算法题

    题目地址:Friend Circles - LeetCode There are N students in a class. Some of them are friends, while some ...

最新文章

  1. 中国智能语音行业研究
  2. DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu)
  3. java线程切换 notify_浅谈 Java线程状态转换及控制
  4. HDU4514(非连通图的环判断与图中最长链)
  5. 如何使用Angular FormBuilder
  6. Several ports (8080, 8009) required by Tomcat v9.0 Server at localhost are already in use.解决方案
  7. 二叉树——基本知识+python实现
  8. Vue子组件调用父组件的方法
  9. Go基础:数组、切片与指针
  10. JDBC通过Mysql驱动包连接数据库
  11. 快手分享链接,实战解析无水印视频源码
  12. 虚拟环境中用Anaconda安装显卡CUDA驱动与CUDA运行版本匹配
  13. conda 小tips
  14. 云计算是什么?新手学习云计算的学习路线
  15. android 警报声音_Android接近警报教程
  16. 二次函数回归方程_高三专题||【导数专题四】利用导数研究函数图形专项习题...
  17. Re:从零开始的 RTL-SDR 折腾记
  18. 前端生产环境调试工具sourcemap的使用
  19. 第五章: 项目范围管理
  20. 7-1 sdut-循环-7-统计正数和负数的个数(II) (10 分)

热门文章

  1. spell_picture3.1版本windows上手动拼图的软件的升级
  2. 对照 python_乐高Spike词语模式与Python模式对照01李老师积木大讲堂 第151期
  3. 东京奥运会73枚动态图标刷爆朋友圈,中国网友怒赞:不愧是设计大国!
  4. 王二涛团队及合作者揭示沙棘放线菌固氮生物学机制
  5. ​JGG | TaxonKit:一款实用又高效的NCBI分类学数据工具包
  6. 最后2周 | 高级转录组分析和R语言数据可视化第十一期 (报名线上课还可免费参加线下课)...
  7. NEJM:益生菌LGG治疗肠胃炎无效,Immunity|LGG促进生骨
  8. SBB:长期施肥影响土壤固氮菌的群落装配过程
  9. Python使用matplotlib可视化散点图、可视化两个数值变量之间的关系(Scatter plot)
  10. pandas自定义设置dataframe每个索引的标签、自定义设置索引的列名称(customize index name and index label)