LeetCode:Reverse Linked List II 解法
2015-04-15 16:57
387 查看
反转链表的扩展,要求能理解本质,考虑边界情况
class Solution
{
public:
ListNode* reverseBetween(ListNode* head, int m, int n)
{
ListNode* result = NULL;
ListNode* p = head;
ListNode* left = NULL;
int i = 1;
for( ; i < m ; i++)
{
left = p;
p = p->next;
}
ListNode* subRight = p;
ListNode* r = NULL;
for(; i <= n; i++)
{
ListNode* q = p->next;
p->next = r;
r = p;
p = q;
}
if(left != NULL)
{
left->next = r;
result = head;
}
else
{
result = r;
subRight = head;
}
subRight->next = p;
return result;
}
};
class Solution
{
public:
ListNode* reverseBetween(ListNode* head, int m, int n)
{
ListNode* result = NULL;
ListNode* p = head;
ListNode* left = NULL;
int i = 1;
for( ; i < m ; i++)
{
left = p;
p = p->next;
}
ListNode* subRight = p;
ListNode* r = NULL;
for(; i <= n; i++)
{
ListNode* q = p->next;
p->next = r;
r = p;
p = q;
}
if(left != NULL)
{
left->next = r;
result = head;
}
else
{
result = r;
subRight = head;
}
subRight->next = p;
return result;
}
};
相关文章推荐
- 【LeetCode】92. Reverse Linked List II 解法及注释
- [leetcode] 92. Reverse Linked List II
- leetcode Reverse Linked List II C++
- leetcode 92: Reverse Linked List II
- 【LeetCode】Reverse Linked List II
- Leetcode#92 Reverse Linked List II
- LeetCode 60 Reverse Linked List II
- [LeetCode]Reverse Linked List II
- leetcode Reverse Linked List II -- 重点
- [LeetCode]Reverse Linked List II
- Leetcode_reverse-linked-list-ii
- leetcode 76: Reverse Linked List II
- [C++]LeetCode: 62 Reverse Linked List II
- Leetcode139: Reverse Linked List II
- 【leetcode】Reverse Linked List II
- 【leetcode】【单链表】【92】Reverse Linked List II
- 【LeetCode】Reverse Linked List II
- LeetCode - Reverse Linked List II
- leetcode——92——Reverse Linked List II
- LeetCode | Reverse Linked List II