【題目描述】
Given a singly linked list L: L0→ L1→ … → Ln-1→ Ln
reorder it to: L0→ Ln→ L1→ Ln-1→ L2→ Ln-2→ …
給定一個(gè)單鏈表L:L0→L1→…→Ln-1→Ln,
重新排列后為:L0→Ln→L1→Ln-1→L2→Ln-2→…
必須在不改變節(jié)點(diǎn)值的情況下進(jìn)行原地操作。
【題目鏈接】
www.lintcode.com/en/problem/reorder-list/
【題目解析】
題目要按照L0→Ln→L1→Ln-1→L2→Ln-2→…來(lái)排列,看例子1->2->3->4會(huì)變成1->4->2->3,拆開來(lái)看,是{1,2}和{4,3}的組合,而{4,3}是{3,4}的逆序。這樣問(wèn)題的解法就出來(lái)了。
首先可以將鏈表分為兩部分,然后,將第二部分鏈表逆序,最后將鏈表重新組合。
【參考答案】