LeetCode第24題思悟——兩兩交換鏈表中的節點(swap-nodes-in-pairs)
知識點預告
- 空頭指針的處理技巧;
- 按部就班地翻譯題目要求;
題目要求
給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
示例
給定 1->2->3->4, 你應該返回 2->1->4->3.
我的思路
添加空頭指針,然後兩兩交換,只需注意結束條件的判斷即可;
public ListNode swapPairs(ListNode head) {
ListNode emptyHead=new ListNode(-1);
emptyHead.next=head;
ListNode operateHead=emptyHead;
ListNode temp;
while(operateHead.next!=null){
temp=operateHead.next;
if(temp.next==null){//轉換到頭啦
break;
}
operateHead.next=temp.next;
temp.next=temp.next.next;
operateHead.next.next=temp;
operateHead=temp;
}
return emptyHead.next;
}
優秀解法
//自己的解法已經很優秀啦
差異分析
//無
知識點小結
- 空頭指針的處理技巧;
- 按部就班地翻譯題目要求;