輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)
解題思路1. 在原鍊錶的每個結點a後插入乙個複製結點a'
2. 根據原鍊錶的每個結點的random指標確定複製結點的random指標(如果a的random為null則a'的randome也為null;非null,則a'的random為a的random的next結點)
3. 針對當前復合鍊錶的複製結點進行整理,得到最終的新鍊錶
/*
public class randomlistnode }*/
public class solution
randomlistnode p = phead;
while (p != null)
p = phead;
while (p != null) else
p = p.next.next;
}p = phead;
randomlistnode newhead = new randomlistnode(0);
randomlistnode q = newhead;
while (p != null)
q.next = null;
return newhead.next;
}}
劍指offer No 35 陣列中的逆序對
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 10 4 對於 75的...
劍指 35,複雜鍊錶的複製(注意)
題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 o n 細節太多了 1,根據普通節點指向先複製一遍,形成a a b b c...
劍指 Offer35鍊錶 複雜鍊錶的複製
題目 請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。示例 輸出 7,null 13,0 11,4 10,2 1,0 分析 要做到在原煉表和新鍊錶之間建立關係...