請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。
示例 1:
輸入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:輸出:[[7,null],[13,0],[11,4],[10,2],[1,0]]
輸入:head = [[1,1],[2,1]]示例 3:輸出:[[1,1],[2,1]]
輸入:head = [[3,null],[3,0],[3,null]]示例 4:輸出:[[3,null],[3,0],[3,null]]
輸入:head =輸出:解釋:給定的鍊錶為空(空指標),因此返回 null。
-10000 <= node.val <= 10000node.random 為空(null)或指向鍊錶中的節點。
節點數目不超過 1000 。
最後拆分鍊錶就能得到乙個複製後的鍊錶
/*
// definition for a node.
class node
};*/
class solution
}void
connectsiblingnodes
(node* head)
pnode = pclone->next;}}
node*
reconnectnodes
(node* head)
while
(pnode !=nullptr)
return pclonehead;
} node*
copyrandomlist
(node* head)
};
劍指Offer 35 複雜鍊錶的複製
請實現啊函式complexlistnode clone complexlistnode phead 複製乙個 複雜鍊錶。在複雜鍊錶中除了有乙個m pnext指標指向下乙個節點,還有乙個m psaibling 指標指向鍊錶中的任意節點或者nullptr。節點定義如下 class complexlist...
(劍指offer)35 複雜鍊錶的複製
輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 1.先複製鍊錶節點的值放在原來的節點後面,組成乙個新的鍊錶 2.處理複雜指標 安排複...
劍指offer35 複雜鍊錶的複製
輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 剛開始看題時還有點摸不著頭腦,感覺這道題沒有任何存在的意義。後來看了大家的討論才明白。思想...