1025 反轉鍊錶

2021-10-02 09:35:25 字數 1200 閱讀 7083

//儲存所有節點,鍵是節點的位址

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 個測試用例。每個測試用例...