//儲存所有節點,鍵是節點的位址
intmain
(void
)int before=-1
;//第乙個節點的前驅結點位址為-1
int nowadd=begin;
int cntnode=0;
//cntnode是鍊錶中的接電腦個數(注意坑點:題目給出的一些節點不在鍊錶中 ),
while
(nowadd!=-1
)//設定每個節點的before;
int nextbegin=begin;
int pos=0;
//當前操作到了第幾個節點
int newbegin=begin;
//最終的鍊錶的頭結點位址
nowadd=begin;
int preend=-1
;while
(cntnode-pos>=k)
//剩下的節點個數大於等於k
if(pos==k)
if(preend!=-1
)//如果存在上乙個子鏈
nextbegin=mp[nowadd]
.next;
for(
int i=
1;i) preend=nowadd;
nowadd=nextbegin;}if
(preend!=-1
)//將倒數第二個子鏈和最後乙個子鏈 接起來
mp[preend]
.next=nextbegin;
nowadd=newbegin;
//遍歷鍊錶
while
(nowadd!=-1
)else
nowadd=mp[nowadd]
.next;
}return0;
}
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 個測試用例。每個測試用例...