請實現 copyrandomlist 函式,複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個 next 指標指向下乙個節點,還有乙個 random 指標指向鍊錶中的任意節點或者 null。
示例 1:
輸入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]
輸出:[[7,null],[13,0],[11,4],[10,2],[1,0]]
示例 2:
輸入:head = [[1,1],[2,1]]
輸出:[[1,1],[2,1]]
示例 3:
輸入:head = [[3,null],[3,0],[3,null]]
輸出:[[3,null],[3,0],[3,null]]
示例 4:
輸入:head =
輸出:解釋:給定的鍊錶為空(空指標),因此返回 null。
-10000 <= node.val <= 10000
node.random 為空(null)或指向鍊錶中的節點。
節點數目不超過 1000 。
/*
// definition for a node.
class node }
*/class solution
//將鍊錶複製乙份
for(node p = head, newnode = null;p != null;p = p.next.next)
//把隨機指標也拉上
for(node p = head;p != null;p = p.next.next)
}//拆分鍊錶,原鍊錶還不能變,一開始一直是直接拉出複製鏈來發現過不老
return split(head);
}
public static node split(node head)
return h;
}
面試題35 複雜鍊錶的複製
題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 方法一 三步 struct randomlistnode class solut...
面試題35 複雜鍊錶的複製
一 題目 請實現函式complexlistnode clone complexlistnode phead 複製乙個複雜鍊錶。在複雜鍊錶中,每個結點除了有乙個m pnext指標指向下乙個結點外,還有乙個m psibling 指向鍊錶中的任意結點或者nullptr。二 關鍵 1.在原始鍊錶上擴充新的鍊...
面試題35 複雜鍊錶的複製
題目 請實現函式complexlistnode clone complexlistnode phead 復 制乙個複雜鍊錶。在複雜鍊錶中,每個結點除了有乙個m pnext指標指向下乙個結點外,還有乙個m psibling 指向鍊錶中的任意結點或者nullptr。include include inc...