LeetCode第24題思悟——兩兩交換鏈表中的節點(swap-nodes-in-pairs)

LeetCode第24題思悟——兩兩交換鏈表中的節點(swap-nodes-in-pairs)

知識點預告

  1. 空頭指針的處理技巧;
  2. 按部就班地翻譯題目要求;

題目要求

給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。

你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。

示例

給定 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;
}

優秀解法

//自己的解法已經很優秀啦

差異分析

//無

知識點小結

  1. 空頭指針的處理技巧;
  2. 按部就班地翻譯題目要求;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章