Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e96d3cc

Browse files
authored
Update 92.reverse-linked-list-ii.md
1 parent b372f32 commit e96d3cc

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

problems/92.reverse-linked-list-ii.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,17 @@ Output: 1->4->3->2->5->NULL
1313

1414
## 思路
1515

16-
考虑取出需要反转的这一小段链表,反转完后再插入到原先的链表中
16+
这道题和[206.reverse-linked-list](https://github.com/azl397985856/leetcode/blob/master/problems/206.reverse-linked-list.md) 有点类似,并且这道题是206的升级版。 让我们反转某一个区间,而不是整个链表,我们可以将206看作本题的特殊情况(special case)
1717

18-
以本题为例:
19-
20-
变换的是2,3,4这三个点,那么我们可以先取出2,用front指针指向2,然后当取出3的时候,我们把3加到2的前面,把front指针前移到3,依次类推,到4后停止,这样我们得到一个新链表4->3->2, front指针指向4。
18+
核心在于**取出需要反转的这一小段链表,反转完后再插入到原先的链表中。**
2119

22-
对于原链表来说,有两个点的位置很重要,需要用指针记录下来,分别是1和5,把新链表插入的时候需要这两个点的位置。
20+
以本题为例:
2321

24-
用pre指针记录1的位置
22+
反转的是2,3,4这三个点,那么我们可以先取出2,用cur指针指向2,然后当取出3的时候,我们将3指向2的,把cur指针前移到3,依次类推,到4后停止,这样我们得到一个新链表4->3->2, cur指针指向4。
2523

26-
当4结点被取走后,5的位置需要记下来
24+
对于原链表来说,有两个点的位置很重要,需要用指针记录下来,分别是1和5,把新链表插入的时候需要这两个点的位置。用pre指针记录1的位置当4结点被取走后,5的位置需要记下来
2725

28-
这样我们就可以把倒置后的那一小段链表加入到原链表中
26+
这样我们就可以把反转后的那一小段链表加入到原链表中
2927

3028
![92.reverse-linked-list-ii](../assets/92.reverse-linked-list-ii.gif)
3129

0 commit comments

Comments
 (0)