leetcode k個元素一組反轉鍊錶

2021-09-19 15:56:18 字數 983 閱讀 8678

搞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...