劍指Offer No 35 複雜鍊錶的複製

2021-10-01 08:24:33 字數 788 閱讀 3074

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的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 分析 要做到在原煉表和新鍊錶之間建立關係...