1.問題描述:給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。
2.思路:兩兩交換兩個節點資料域所存放的資料元素
3.通過的**:
4.感想:剛開始的時候自己一直希望通過改指標指向來改變兩個節點的順序,自己的**自己用畫鍊錶圖來驗證也是沒錯,但一直是wrong answer,最後發現應該是在鍊錶的最後的地方**執行會有錯誤。別人給我講了另一種思路,就是每次交換兩個節點的資料域的資料元素,這種思想更簡單,**在實行起來也更簡單。在編寫程式時,不同的角度看待問題有不同的解決方法。
LintCode 兩兩交換鍊錶中的節點
題目描述 給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。樣例 給出 1 2 3 4,你應該返回的鍊錶是 2 1 4 3。思路分析 這個題直接 更改每個結點的 val值就行了,沒必要改變 結點的 邏輯順序。我用的乙個陣列儲存下來每個結點的val值就好了 泡泡一直在這裡糾結這個 邏輯順序。搞不懂...
LintCode 兩兩交換鍊錶中的節點
1.描述 給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。樣例 給出1 2 3 4,你應該返回的鍊錶是2 1 4 3。2.分析 假設鍊錶中原有的元素為1 2 3 4 5,那麼得到的是2 1 4 3 5,實質上是把第一第二元素互換,第三第四元素互換,以此類推。如果用乙個 陣列把這些元素存起來,那...
LintCode之兩兩交換鍊錶中的節點
題目描述 我的思路 由題目描述可知,題目是要求將第乙個與第二個節點,第三個與第四節點.進行交換,而進行交換時只用將節點的值進行交換即可。需要注意的是 當鍊表為null或者當鍊表只有乙個節點時就沒有可進行交換的另乙個節點,就可以直接將該鍊錶返回。我的 1 2 definition for singly...