LeetCode OJ 92. Reverse Linked List II
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode OJ 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->2->3->4->5->NULL
, m = 2 and n = 4,
return 1->4->3->2->5->NULL
.
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
Subscribe to see which companies asked this question
解答:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* reverseBetween(struct ListNode* head, int m, int n) { struct ListNode *pNode = head, *tmp_1, *tmp_2, *tmp_head = NULL, *tmp_tail; int count = 0; if(1 != m){ while(NULL != pNode){ count++; if(m - 1 == count){ tmp_tail = tmp_1 = pNode->next; pNode->next = NULL; while(n > count){ tmp_2 = tmp_1->next; tmp_1->next = pNode->next; pNode->next = tmp_1; tmp_1 = tmp_2; count++; } tmp_tail->next = tmp_1; break; } pNode = pNode->next; } } else{ tmp_tail = head; while(n > count){ tmp_2 = head->next; head->next = tmp_head; tmp_head = head; head = tmp_2; count++; } tmp_tail->next = head; head = tmp_head; } return head; }
以上是关于LeetCode OJ 92. Reverse Linked List II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 92. Reverse Linked List II
Leetcode92. Reverse Linked List II && 206. Reverse Linked List
[LeetCode92]Reverse Linked List II
#Leetcode# 92. Reverse Linked List II