given a singly linked list l: l
0→l1→…→l
n-1→l
n,reorder it to: l
0→ln
→l1→l
n-1→l
2→ln-2→…
you must do this in-place without altering the nodes' values.
for example,
given, reorder it to
.
在ctci的鍊錶那節有個類似的題。這裡這道題要多一步反轉鍊錶而已。
1.把鍊錶從中間分成前後兩部分。如果鍊錶長度是奇數,那麼前面的鍊錶長度多一。
2.把後半部分鍊錶反轉
3.再把兩個鍊錶合併
沒有用到extra space,時間複雜度o(n)
public class solution
else
slow = slow.next;
}//reverse the second part
listnode secondhead = reverselist(slow.next);
slow.next = null;
//merge the two lists
merge(head, secondhead);
}public listnode reverselist(listnode node)
return p;
}public void merge(listnode node1, listnode node2)
}}
LeetCode刷題筆錄Count and Say
the count and say sequence is the sequence of integers beginning as follows 1,11,21,1211,111221,1is read off as one 1 or11.11is read off as two 1s or2...
開始刷題LeetCode
今天決定開始刷題,每天至少一題,如果題目確實沒有解決出來沒有關係,但是要保證每天至少接觸了一道新的題目!一定要堅持下去,現在是個菜鳥可能會感覺有點難度,堅持下去,總有一天會好的!今天是第一天,做的第乙個題目 reverse words in a string given an input strin...
leetcode刷題歷程
難度 簡單 題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 ...