給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
示例:給定 1->2->3->4, 你應該返回 2->1->4->3.
1public
class
t24
7 listnode dummy = new listnode(-1);
8 dummy.next =head;
9 listnode pre =dummy;
1011
12while (head != null && head.next != null
) 27
return
dummy.next;
2829
}30 }
給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。
k 是乙個正整數,它的值小於或等於鍊錶的長度。
如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。
示例:給你這個鍊錶:1->2->3->4->5
當 k = 2 時,應當返回: 2->1->4->3->5
當 k = 3 時,應當返回: 3->2->1->4->5
說明:你的演算法只能使用常數的額外空間。
你不能只是單純的改變節點內部的值,而是需要實際進行節點交換。
1public
class
t25
12if (end == null
) 15
//複製出 start 和 next,即將被覆蓋
16 listnode start =pre.next;
17 listnode next =end.next;
18 end.next = null;19
20//
反轉 + 前驅節點拼接 start位址不變,但是其next指標更換為null
21 pre.next =reverse(start);
22//
end + 後驅節點
23 start.next =next;
2425
//更新pre和end
26 pre =start;
27 end =pre;
2829}30
return
dummy.next;31}
3233
private
listnode reverse(listnode start)
41return
dummy.next;42}
43 }
LC 交換鍊錶節點
將給定的鍊錶中每兩個相鄰的節點交換一次,返回鍊錶的頭指標 例如,給出1 2 3 4,你應該返回鍊錶2 1 4 3。你給出的演算法只能使用常量級的空間。你不能修改列表中的值,只能修改節點本身。struct listnode class solution listnode phead newlistno...
兩兩交換鍊錶中的節點
給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。樣例 給出 1 2 3 4,你應該返回的鍊錶是 2 1 4 3。遞迴方式 交換p 和 p.next 結點 swaphead p.next swaphead.next p definition for singly linked list.publ...
兩兩交換鍊錶中的節點
給乙個鍊錶,兩兩交換其中的節點,然後返回交換後的鍊錶。給出1 2 3 4,你應該返回的鍊錶是2 1 4 3。首先這個鍊錶只能交換偶數個資料,如果有奇數個資料則最後乙個資料不進行交換。做乙個迴圈將資料兩個兩個的交換,每交換完一次都要往後迭代。definition for singly linked l...