96 合併鍊錶

2021-07-31 14:53:13 字數 719 閱讀 1150

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 題解我們這裡利用到了乙個前哨節點,因為兩個鍊錶實際上是已經排好序了,所以我們只需要比較兩個節點誰大誰小,找到小的接上去,然後那個...