Leetcode#92 Reverse Linked List II
第一步,找到将要翻转的位置,记录翻转部分前一个节点(prev)
第二步,翻转,记录翻转完成后这部分的首(reverseHead)和尾(reverseTail),以及翻转部分之后的一个节点(post)
第三部,将prev、reverseHead、reverseTail、post连接起来
代码:
ListNode *reverseBetween(ListNode *head, int m, int n) {
ListNode *node = head;
ListNode *prev = NULL;
ListNode *post = NULL;
ListNode *reverseHead = NULL;
ListNode *reverseTail = NULL;
int count = ;
if (!head)
return NULL;
prev = NULL;
while (node && count < m ) {
prev = node;
node = node->next;
count++;
}
if (!node)
return head;
reverseTail = node;
post = node->next;
while (post && count < n) {
ListNode *postNext = post->next;
post->next = node;
node = post;
post = postNext;
count++;
}
reverseHead = node;
reverseTail->next = post;
if (!prev)
return reverseHead;
else {
prev->next = reverseHead;
return head;
}
}
Leetcode#92 Reverse Linked List II的更多相关文章
- [LeetCode] 92. Reverse Linked List II 反向链表II
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...
- [LeetCode] 92. Reverse Linked List II 倒置链表之二
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...
- leetcode 92 Reverse Linked List II ----- java
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...
- LeetCode 92. Reverse Linked List II倒置链表2 C++
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...
- [leetcode]92. Reverse Linked List II反转链表2
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...
- [LeetCode 92] Reverse Linked List II 翻转单链表II
对于链表的问题,根据以往的经验一般都是要建一个dummy node,连上原链表的头结点,这样的话就算头结点变动了,我们还可以通过dummy->next来获得新链表的头结点.这道题的要求是只通过一 ...
- [LeetCode]92. Reverse Linked List II反转部分链表
/* 重点还是反转链表 思路就是中间的反转,然后两头接上 */ public ListNode reverseBetween(ListNode head, int m, int n) { if (he ...
- 92. Reverse Linked List II【Medium】
92. Reverse Linked List II[Medium] Reverse a linked list from position m to n. Do it in-place and in ...
- 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- ...
随机推荐
- 用,隔开sql临时表
IF OBJECT_ID('[kkd].[proc_kkd_GetAutoExamineBid]') IS NOT NULL BEGIN DROP PROC [kkd].[proc_kkd_GetAu ...
- WordPress 主题开发 - (十三) Archive模板 待翻译
What archive.php does (and all its related templates) is show posts based on a select criteria. A da ...
- 安装mysql 5.7 最完整版教程
Step1: 检测系统是否自带安装mysql #yum list installed | grep mysql Step2: 删除系统自带的mysql及其依赖 命令: yum remove mysql ...
- 14)Java中Assert
J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新.在软件开发中,assertion是一种经典的调试.测试方式. jvm 断言默认是关 ...
- delphi 2010是动画GIF的支持方法
下面delphi 2010是动画GIF的支持方法: 1.在窗体上放一个Image1控件.注意:这时设置其Picture属性,加载一幅动画GIF是不会动画显示的. 2.在窗体的FormCreate事 ...
- 关于js中this的疑问
学习bootstrap.js源码中被js里边的this绕的有点晕 /* ================================================================ ...
- Windows 上如何安装Sqlite(转载)
1.获得命令行程序 SQLite命令行程序(CLP)是开始使用SQLite的最好选择,按照如下步骤获取CLP: 1).打开浏览器进入SQLite主页, www.sqlite.org. 2).单击页 ...
- GROUPING SETS、CUBE、ROLLUP
其实还是写一个Demo 比较好 USE tempdb IF OBJECT_ID( 'dbo.T1' , 'U' )IS NOT NULL BEGIN DROP TABLE dbo.T1; END; G ...
- Hashset,Iterator
HashSet类主要是设计用来做高性能集运算的,例如对两个集合求交集.并集.差集等.集合中包含一组不重复出现且无特性顺序的元素. (一)HashSet的一些特性如下: 1.HashSet中的值不能重复 ...
- DISP_FUNCTION用法
DISP_FUNCTION(theClass, pszName, pfnMember, vtRetVal, vtsParams ) 参数 theClass 类名. pszName 扩展函数名. pfn ...