Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4, you should return the list as 2->1->4->3.
解法1:
參考代碼
解題思路:定義三個指針,p,pPre,pPrePre;p指向一對節點的第二個,pPre是p的前一個,pPrePre是上一對的第二個,1->2-> ?3->4。單鏈表不能向前找節點,要用pre記住前邊的兩個節點,pPrePre的下一個指向p,p的下一個指向pPre,pPre的下一個指向pNext,在將p指針指向pNext,直到結束。
解法2:
參考代碼
這個方法使用了遞歸,不難看懂。