python劍指offer系列複雜鍊錶的複製

2021-08-15 20:30:13 字數 1017 閱讀 8002

題目:

輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的head。(注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空)

solution:

###複雜鍊錶的複製(雜湊法)

class randomlistnode:

def __init__(self, x):

self.label = x

self.next = none

self.random = none

class solution:

def clone(self, head):

listnode =

randomnode =

label =

while head:

head = head.next

###找到randomnode在listnode上的索引,為後面建立新的randomnode提供索引

randomlistlabel = map(lambda x:listnode.index(x) if x else -1,randomnode)

copynode = randomlistnode(0)

tmp = copynode

####重新建立乙個listnode,完成複製

listnode = map(lambda x:randomlistnode(x),label)

for i in range(len(listnode)):

if randomlistlabel[i] != -1:

listnode[i].random = listnode[randomlistlabel[i]]

for i in listnode:

tmp.next = i

# tmp.next = listnode[i+1]

tmp = tmp.next

return copynode.next

《劍指offer》系列 1

最近一直在看劍指offer,這上面的題目都是比較考察程式設計能力的,打算做個記錄,把寫過的 儲存下來 1.實現乙個string類 面試官的考察點應該在以下幾點 1.模板類的書寫 2.對於賦值函式考察的幾點 1 是否返回引用,因為只有返回引用,才能連續的進行賦值 2 引數是否是常量 3 是否是自身賦值...

《劍指offer》系列 2

1.求斐波那契數列的第n項 這個題目很簡單,講遞迴的書上都是用這個來講的,但是面試的時候,如果你寫個遞迴,那估計會讓人失望的,因為遞迴的效率真是乙個問題,你可以測試一下,輸入50,基本上得到結果的時間,夠你去喝杯茶了 include using namespace std 使用遞迴效率太低了,甚至可...

python實現劍指offer系列 重建二叉樹

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。class node def init self,data,left,right self.data data self.le...