LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题
题目地址: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 解法--反转部分链表--笔试算法题相关推荐
- 【??链表】LeetCode 92. Reverse Linked List II
LeetCode 92. Reverse Linked List II Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4306611.html ...
- 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的链接列表反 ...
- (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-> ...
- 92. Reverse Linked List II
题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 解题思路: 1 /** 2 * Definition for singly-lin ...
- 92. Reverse Linked List II(反转链表II)
题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 思路: 先找到需要反转部分的首部,然后依次压栈, 最后出栈,连接即可. AC 2m ...
- let 92. Reverse Linked List II
主题思想: 链表翻转: 链表翻转, 链表翻转经典代码: public ListNode reverseList(ListNode head){if(head==null||head.next==nul ...
- LeetCode | Reverse Linked List II
这道链表反转题也是搞的我焦头烂额,好久没有写链表了,注意记忆这些 Reverse Linked List II QuestionEditorial Solution My Submissions To ...
- Leetcode 206. Reverse Linked List
Similar Questions Reverse Linked List II Binary Tree Upside Down Palindrome Linked List 思路:链表反转. 解法一 ...
- LeetCode 547. Friend Circles--Python解法--笔试算法题
题目地址:Friend Circles - LeetCode There are N students in a class. Some of them are friends, while some ...
最新文章
- 中国智能语音行业研究
- DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu)
- java线程切换 notify_浅谈 Java线程状态转换及控制
- HDU4514(非连通图的环判断与图中最长链)
- 如何使用Angular FormBuilder
- Several ports (8080, 8009) required by Tomcat v9.0 Server at localhost are already in use.解决方案
- 二叉树——基本知识+python实现
- Vue子组件调用父组件的方法
- Go基础:数组、切片与指针
- JDBC通过Mysql驱动包连接数据库
- 快手分享链接,实战解析无水印视频源码
- 虚拟环境中用Anaconda安装显卡CUDA驱动与CUDA运行版本匹配
- conda 小tips
- 云计算是什么?新手学习云计算的学习路线
- android 警报声音_Android接近警报教程
- 二次函数回归方程_高三专题||【导数专题四】利用导数研究函数图形专项习题...
- Re:从零开始的 RTL-SDR 折腾记
- 前端生产环境调试工具sourcemap的使用
- 第五章: 项目范围管理
- 7-1 sdut-循环-7-统计正数和负数的个数(II) (10 分)
热门文章
- spell_picture3.1版本windows上手动拼图的软件的升级
- 对照 python_乐高Spike词语模式与Python模式对照01李老师积木大讲堂 第151期
- 东京奥运会73枚动态图标刷爆朋友圈,中国网友怒赞:不愧是设计大国!
- 王二涛团队及合作者揭示沙棘放线菌固氮生物学机制
- ​JGG | TaxonKit:一款实用又高效的NCBI分类学数据工具包
- 最后2周 | 高级转录组分析和R语言数据可视化第十一期 (报名线上课还可免费参加线下课)...
- NEJM:益生菌LGG治疗肠胃炎无效,Immunity|LGG促进生骨
- SBB:长期施肥影响土壤固氮菌的群落装配过程
- Python使用matplotlib可视化散点图、可视化两个数值变量之间的关系(Scatter plot)
- pandas自定义设置dataframe每个索引的标签、自定义设置索引的列名称(customize index name and index label)