5.5
果然一遇到鍊錶,思路就很不清晰。
鍊錶重點就是鍊錶的維護問題。
比如我剛開始使用的flags來直接修改,就會有錯誤。
其實應該修改的是flags.next。
恩。。。。只可意會,不可言傳。總之以後要用next來維護。
/**
* definition for listnode.
* public class listnode
* }*/
public class solution
listnode newhead = new listnode(0);
newhead.next = null;
//small用來標記最後乙個小於x 的結點
listnode flags = newhead;
//big用來標記最後乙個大於等於x的結點
listnode big = new listnode(0);
big.next = null;
listnode flagb = big;
//flag用來標記當前鍊錶中遍歷到的點
listnode flag = head;
while(flag != null)
else
}flags.next = big.next;
return newhead.next;
}}
lintcode 96 鍊錶劃分
1.給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。2.完全沒有思路.3.definition of listnode class listnode class solution else cur cur next lastsm...
lintCode 96 鍊錶劃分
題目本身難度不到,只想講一些關於鍊錶的操作。這裡看了幾篇部落格,寫得好的使用了乙個小技巧 在新鍊錶list的頭部多分配了乙個節點的空間,從而簡化了接下來對於鍊錶的操作,這又什麼好處呢?最後返回的的時候,返回list next就行,然而由於這個新鍊錶具有自己的資料空間因此,就可以在這個新煉表上直接操作...
鍊錶 合併有序鍊錶
題目 將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 題解我們這裡利用到了乙個前哨節點,因為兩個鍊錶實際上是已經排好序了,所以我們只需要比較兩個節點誰大誰小,找到小的接上去,然後那個...