樂扣T143 OJ1 重排鍊錶 c

2021-10-07 17:01:25 字數 961 閱讀 2154

問題描述 :

給定乙個單鏈表 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.

輸入說明 :

首先輸入鍊錶長度len,然後輸入len個整數,以空格分隔。

輸出說明 :

輸出格式見範例

#include

using

namespace std;

struct listnode

listnode

(int x)

:val

(x),

next

(null

)listnode

(int x, listnode *next)

:val

(x),

next

(next)};

class

solution

if(r-

>next)

else

break;}

}};listnode *

createbytail()

return head;

}void

displaylink

(listnode *head)

cout<<

"tail\n";}

intmain()

注意:當num為雙數時的交換終止條件為 if(r->next)

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,重新排列...