Given a linked list, swap every two adjacent nodes and return its head.
Example:
1 |
|
Note:
- Your algorithm should use only constant extra space.
- You may not modify the values in the list’s nodes, only nodes itself may be changed.
Related Topics: Linked List
解題邏輯與實作
這題是要以兩個節點為一組翻轉鏈結串列,難度不高,但很容易把自己搞暈頭轉向,建議先畫圖輔助會比較清楚。
迭代
這個的想法比較簡單,就是兩兩指標交換,不過在交換時需要注意下交換的順序,不然很容易把指標搞丟了。
1 |
|
遞迴
想說迭代做的到的,應該也可以用遞迴來實做。實做時,先交換最後兩個,再依序向前交換。
1 |
|