題目:
輸入乙個複雜鍊錶(每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點),返回結果為複製後複雜鍊錶的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...