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

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

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