輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標random指向乙個隨機節點),請對此鍊錶進行深拷貝,並返回拷貝後的頭結點。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)。 下圖是乙個含有5個結點的複雜鍊錶。圖中實線箭頭表示next指標,虛線箭頭表示random指標。為簡單起見,指向null的指標沒有畫出。
輸入:
返回值:
三步:拷貝單鏈表。在原鍊錶每個結點後面插入乙個與當前節點值相同的結點,例如:1-2-3-4-5拷貝後變成
1-1*-2-2*-3-3*-4-4*-5-5*
拷貝隨機結點。給鍊錶中新生成的結點關聯上隨機結點(如果原結點有的話)
拆分鍊錶。把拷貝後的長鍊錶拆分成兩個鍊錶(一新一舊)
class solution
cur = head;
while (cur != null)
cur = cur.next.next;
}cur = head.next;
node pre = head, res = head.next;
while (cur.next != null)
pre.next = null;
return res;
}}
有點疑惑,最後一步處理中,為什麼用下面這步不正確呢?
//擷取複製好的新結點
cur = head.next;
node res=cur;
//node res = head.next, pre = head;
while (cur.next != null )
= null;
return res;
JZ25 複雜鍊錶的複製
輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標random指向乙個隨機節點 請對此鍊錶進行深拷貝,並返回拷貝後的頭結點。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 題目有乙個非常狠的限制條件那就是,不能使用引用拷貝。那麼我們就只能自己...
25 複雜鍊錶的複製
題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 時間限制 1秒 空間限制 32768k 感覺這題目好無聊,自己想到的方法大概是乙...
25 複雜鍊錶的複製
題目 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 struct randomlistnode class solution pnode...