**是看的別人的。
測試點
輸入k=0
輸出 -1
輸入k=1
輸出
#include #include using namespace std;
struct node
list[100000];
int main()
//根據next值,把正確連線順序放入另乙個陣列
while (start != -1)
//對vec陣列進行,每k個資料的反轉操作
int cnt = 0;
if (k)//k不等於0
cnt++;}}
//按首尾格式輸出
for (int j = 0; j < vec.size(); j++)
cout<
return 0;
}
有乙個測試點,沒找到。嗚嗚
把**替換成那個大佬的可以通過,誰可以告訴我一下是**不一樣
//對vec陣列進行,每k個資料的反轉操作
if (k)
int sum = 0;//不一定所有的輸入的結點都是有用的,加個計數器
while (first != -1)
for (int i = 0; i < (sum - sum % k); i += k)
reverse(begin(list) + i, begin(list) + i + k);
for (int i = 0; i < sum - 1; i++)
printf("%05d %d %05d\n", list[i], data[list[i]], list[i + 1]);
printf("%05d %d -1", list[sum - 1], data[list[sum - 1]]);
return 0;
}
c++提供了乙個swap函式用於交換,用法如下。
swap 包含在命名空間std 裡面
1025 反轉鍊錶 (25 分)
給定乙個常數 k 以及乙個單鏈表 l,請編寫程式將 l 中每 k 個結點反轉。例如 給定 l 為 1 2 3 4 5 6,k 為 3,則輸出應該為 3 2 1 6 5 4 如果 k 為 4,則輸出應該為 4 3 2 1 5 6,即最後不到 k 個元素不反轉。輸入格式 每個輸入包含 1 個測試用例。每...
1025 反轉鍊錶 (25 分)
1025 反轉鍊錶 25 分 給定乙個常數 k 以及乙個單鏈表 l,請編寫程式將 l 中每 k 個結點反轉。例如 給定 l 為 1 2 3 4 5 6,k 為 3,則輸出應該為 3 2 1 6 5 4 如果 k 為 4,則輸出應該為 4 3 2 1 5 6,即最後不到 k 個元素不反轉。輸入格式 每...
1025 反轉鍊錶 25 分
給定乙個常數 k 以及乙個單鏈表 l,請編寫程式將 l 中每 k 個結點反轉。例如 給定 l 為 1 2 3 4 5 6,k 為 3,則輸出應該為 3 2 1 6 5 4 如果 k 為 4,則輸出應該為 4 3 2 1 5 6,即最後不到 k 個元素不反轉。輸入格式 每個輸入包含 1 個測試用例。每...