反轉(zhuǎn)一個(gè)雙向鏈表中奇數(shù)位置上的數(shù)。如一個(gè)雙向鏈表為1<->2<->3<->4<->5<->6,反轉(zhuǎn)之后為5<->2<->3<->4<->1<->6。也就是把第一位,第三位,第五位反轉(zhuǎn)問題補(bǔ)充:我說的那個(gè)123456只是一個(gè)例子,要一個(gè)對(duì)任意長度都適用的方法?。ㄓ袥]有只掃描一遍的方法,各種方法都?xì)g迎,考慮到復(fù)雜度的更好?。。?
2 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
只掃描一遍不太可能。提供一個(gè)思路
兩個(gè)指針,一個(gè)指向表頭,一個(gè)指向表尾,同時(shí)向中間遍歷,并交換奇數(shù)位上的元素,直到兩個(gè)指針相遇。

慕碼人8056858
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
和字符串反轉(zhuǎn)類似,兩個(gè)指針向內(nèi)靠攏,對(duì)于小數(shù)據(jù)來說交換其 data 值即可(整個(gè)鏈表的所有指針不需要變動(dòng)),當(dāng)然也可以交換指針,線性時(shí)間復(fù)雜度:O(N)。
- 2 回答
- 0 關(guān)注
- 859 瀏覽
添加回答
舉報(bào)
0/150
提交
取消