1025 反轉鍊錶

2021-09-27 12:42:50 字數 518 閱讀 3106

#includeusing namespace std;

int main()

int sum = 0;//計數(節點個數),位址為-1時不計入

//按指標連線順序存放節點的位址到list陣列中

//list的下標就是結點的位址

while(first!=-1)

//每k個元素反轉,最後不到k個元素不反轉

//即遍歷到剛好只剩下最後k個元素的位置

for(int i=0;i<(sum-sum%k);i+=k)

reverse(begin(list)+i,begin(list)+i+k);

for(int i=0;iprintf("%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;

}

1025 反轉鍊錶

在這道題中這其實是一道偽反轉鍊錶的題目,因為每乙個節點中其實沒有儲存指標的值,所以可以使用vector reverse來配合 自己的解法 給定乙個常數k以及乙個單鏈表l,請編寫程式將l中每k個結點反轉。例如 給定l為1 2 3 4 5 6,k為3,則輸出應該為3 2 1 6 5 4 如果k為4,則輸...

1025 反轉鍊錶

1025.反轉鍊錶 給定乙個常數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個測試用例。每個測試用例第1行給出第...

1025 反轉鍊錶

給定乙個常數 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 個測試用例。每個測試用例...