複雜鍊錶的複製:1.在舊鍊錶中每個結點的後面複製出乙個結點,隔代
2.把舊鍊錶的隨機指向部分,複製到新新增的結點上
3.把新結點從舊鍊錶中拆分出來成新鍊錶
1.linklist=head
while linklist!=null
node=new
node()
node->next=linklist->next
linklist->next=node
linklist=node->next
2.linklist=head
while listlink!=null
node=listlink->next
listlink->next->random=linklist->random!=null ? listlink->random->next : null
listlink=node->next
3.tmp=linklist->next
linklist->next=tmp->next
linklist=tmp
<?phpclass
node }//
構造乙個複雜鍊錶
$linklist=new
node();
$linklist->next=null
;$temp=$linklist
;$node1=new node("111");
$temp->next=$node1
;$temp=$node1
;$node2=new node("222");
$temp->next=$node2
;$temp=$node2
;$node3=new node("333");
$node3->random=$node2; //
node3又指向了node2
$temp->next=$node3
;$temp=$node3
;var_dump($linklist
);$clonelist=myclone($linklist
);var_dump($clonelist
);//
複製複雜鍊錶
function myclone($linklist
)
//第二步
$temp=$linklist
;
while($temp!=null
)
//第三步
$newlist=$linklist->next;//
從第二個結點開始要
$temp=$newlist
;
while($temp->next!=null
)
return
$newlist
;}
object(node)#1 (3) }}}
object(node)#
5 (3)
}}
PHP 演算法 複製複雜鍊錶的PHP實現
複雜鍊錶的複製 1.在舊鍊錶中每個結點的後面複製出乙個結點,隔代 2.把舊鍊錶的隨機指向部分,複製到新新增的結點上 3.把新結點從舊鍊錶中拆分出來成新鍊錶 1.linklist head while linklist null node new node node next linklist nex...
PHP 演算法 複製複雜鍊錶的PHP實現
複雜鍊錶的複製 1.在舊鍊錶中每個結點的後面複製出乙個結點,隔代 2.把舊鍊錶的隨機指向部分,複製到新新增的結點上 3.把新結點從舊鍊錶中拆分出來成新鍊錶 1.linklist head while linklist null node new node node next linklist nex...
複雜鍊錶的複製演算法
題目 請實現函式complexlistnode clone complexlistnode phead 複製乙個複雜鍊錶。在複雜鍊錶中,每個節點除了有乙個m pnext指標指向下乙個節點,還有乙個m psibiling指標指向鍊錶中的任意節點或者nullptr。節點的c 定義如下 struct co...