首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode Reverse Nodes in k-Group:K 個一組翻轉鏈表的迭代實現

     編輯:關於C++

題目大意

給定單鏈表頭節點,每 k 個節點一組翻轉,不足 k 的尾部保持原序。要求 O(1) 額外空間,只能修改節點指針不能修改值。
例:1→2→3→4→5, k=2 → 2→1→4→3→5;k=3 → 3→2→1→4→5。

迭代算法核心

使用虛擬頭節點 dummy 簡化邊界。維護 pre 指向待翻轉組的前一個節點。每輪:
1. 檢查剩餘節點是否 ≥ k(用 tail 走 k 步)。
2. 翻轉 pre->next 到 tail 之間的鏈表。
3. 將翻轉後的頭尾重新接回主鏈,更新 pre 為翻轉前的頭(現為尾)。

C++ 實現

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved