題目描述:
輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head。(注意,輸出結果中請不要返回引數中的節點引用,否則判斷程式會直接返回空)
思路:分為三個步驟:
1、根據原始鍊錶中的節點建立新的節點,然後將新的節點連線在對應的原始節點的後面,現在鍊錶中就是乙個原始節點乙個複製後的節點;
2、設定複製出來的節點的m_psibling。假設原始鍊錶上的n的m_psibling指向節點s,那麼對應的複製出來的節點的m_psibling指向s的下乙個節點。
3、把這個長鍊表拆分成兩個鍊錶,把奇數字置的鍊錶連線起來就是原始鍊錶,把偶數字置的鍊錶連線起來就是複製出來的鍊錶。
**:
/*
public class randomlistnode }*/
public class solution
//根據原煉表中的每個節點建立對應的複製節點,並將複製節點連線到相對應的節點的後面
void clonenodes(randomlistnode phead)
}//設定複製出來的節點的指向任意節點的特殊指標
void connectionsiblingnodes(randomlistnode phead)
p=pclone.next;}}
public randomlistnode separatenodes(randomlistnode phead)
while(p!=null)
return pclonehead;
}}
注意:randomlistnode pclone=new randomlistnode(p.label);必須要在括號裡賦乙個值,不賦值就會有錯誤。 牛客網 複雜鍊錶的複製
輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路參考 苦練演算法 劍指offer 二十 五 複雜鍊錶的複製 python編寫 先複製原...
牛客網18 複雜鍊錶的複製
輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 coding utf 8 class randomlistnode def init se...
牛客網刷題之複雜鍊錶
題目描述 現在有乙個這樣的鍊錶 鍊錶的每乙個節點都附加了乙個隨機指標,隨機指標可能指向鍊錶中的任意乙個節點或者指向空。請對這個鍊錶進行深拷貝。題目分析 public class solution 當前節點指向複雜鍊錶的頭結點 randomlistnode curnode head 賦值原始鍊錶,並將...