搞3個指標即可,分別指向當前處理的節點,當前處理節點的前乙個節點,當前處理節點的下乙個節點。
下一節點在進入迴圈之前已經設定了,不是空的。
class solution
current->next=pre;
return current;
}};
下一節點在進入迴圈前設定為空,每次進入迴圈之後才設定為當前節點的下一節點。
class solution
return pre;
}};
2種方法都可以,但要特別注意迴圈結束的條件和最後返回的指標,否則會處出現_next指向空指標的下乙個節點或者返回空指標。
每k個元素按照反轉鍊錶的方式進行反轉,然後要把這些鍊錶鏈結起來即可。
1 2 3 4 5 6 7 8
以每隔3個元素反轉
3 2 1 6 5 4 7 8
class solution
//如果個數到達k,說明可以反轉
if(cando==k)
//這個時候,current和_next都指向下乙個分段的開始
if(current)
//不要忘了這個
return pre;
}//否則,不可以反轉,直接返回原來分段頭節點即可
else
return head;
}};
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
if(checkcount==k)
if(next)
return pre;
}else
return head;
}};
LeetCode k個一組翻轉鍊錶
給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。示例 給定這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1 4 ...
LeetCode k個一組翻轉鍊錶
給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。示例 給定這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1 4 ...
LeetCode K個一組翻轉鍊錶
使用頭插法 遞迴解,ac definition for singly linked list.struct listnode int len listnode head return c class solution listnode next head next head next ret ret...