面試訓練複雜鍊錶的複製

2021-06-09 01:27:44 字數 440 閱讀 3445

題目:有乙個複雜鍊錶,其結點除了有乙個

m_pnext

指標指向下乙個結點外,還有乙個

m_psibling

指向鍊錶中的任一結點或者

null

。其結點的

c++定義如下:

struct

complexnode ;

下圖是乙個含有

5個結點的該型別複雜鍊錶。圖中實線箭頭表示

m_pnext

指標,虛線箭頭表示

m_psibling

指標。為簡單起見,指向

null

的指標沒有畫出。

請完成函式

complexnode* clone(complexnode* phead)

,以複製乙個複雜鍊錶。

這道題目十分有意思,因此我決定程式設計實現

哇看了下果然牛啊

面試26 複雜鍊錶的複製

1.複製原始鍊錶的每乙個結點,並用m pnext鏈結 設定每乙個結點的m psibling指標。但該指標可能指向此結點的前面或後面,需從頭定位。時間複雜度為o n 2 2.雜湊表存著配對資訊,o n 3.將原始結點n建立對應的n 這一次,把n 連線到n的後面 void clonenodes comp...

面試題 複雜鍊錶複製

lettcode面試題35.複雜鍊錶的複製 請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。class node int val node next node...

面試題 複雜鍊錶的複製

對於這個題,基本會有三個思路 1.這裡鍊錶的複製和單鏈表最大的不同,就是多了乙個自由指標 psub 那麼最簡單的想法就是,遍歷單鏈表,找到psub指向的節點,然後複製,這樣做最簡單,事件複雜度為o n的平方 2.基於第一種方法的優化,第一種方法把事件浪費在了查詢節點上,那麼我們可以建立乙個雜湊函式,...