C語言重構 143 重排鍊錶

2021-10-25 10:30:08 字數 1045 閱讀 2044

所有題目源**:git位址

題目

給定乙個單鏈表 l:l0→l1→…→ln-

1→ln ,

將其重新排列後變為: l0→ln→l1→ln-

1→l2→ln-

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

示例 1

:給定鍊錶 1

->2-

>3-

>

4, 重新排列為 1

->4-

>2-

>

3.示例 2

:給定鍊錶 1

->2-

>3-

>4-

>

5, 重新排列為 1

->5-

>2-

>4-

>

3.通過次數71

,216提交次數119

,487

方案:
/**

* definition for singly-linked list.

* struct listnode

* listnode(int x) : val(x), next(nullptr) {}

* listnode(int x, listnode *next) : val(x), next(next) {}

* };

*/class

solution

slow = pre-

>next;

pre-

>next = null;

listnode *tmp1,

*tmp2;

tmp1 = slow;

slow = slow-

>next;

tmp1-

>next = null;

while

(slow != null)

slow = head;

while

(slow != null)

else}}

};

複雜度計算

143 重排鍊錶

143.重排鍊錶 給定乙個單鏈表 l l0 l1 l n 1 ln 將其重新排列後變為 l0 l n l1 l n 1 l2 l n 2 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 1 給定鍊錶 1 2 3 4,重新排列為 1 4 2 3.示例 2 給定鍊錶 1 2 3 4 ...

143 重排鍊錶

題解 時間複雜度 o n 空間複雜度 o n definition for singly linked list.struct listnode listnode int x val x next nullptr listnode int x,listnode next val x next nex...

143 重排鍊錶

題目 給定乙個單鏈表 l l0 l1 l n 1 ln 將其重新排列後變為 l0 l n l1 l n 1 l2 l n 2 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 1 給定鍊錶 1 2 3 4,重新排列為 1 4 2 3.示例 2 給定鍊錶 1 2 3 4 5,重新排列...