牛客网(剑指offer) 第二十五题 复杂链表的复制
生活随笔
收集整理的這篇文章主要介紹了
牛客网(剑指offer) 第二十五题 复杂链表的复制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//題目描述
//輸入一個復雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果為復制后復雜鏈表的head。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回空) <?php /*class RandomListNode{var $label;var $next = NULL;var $random = NULL;function __construct($x){$this->label = $x;} }*/ //第一種思路 function MyClone($pHead){if($pHead==null)return ;$pnode=new RandomListNode($pHead->label);$pnode->next=$pHead->next;$pnode->random=$pHead->random;$pnode->next=MyClone($pHead->next);return $pnode; }//第二種思路
function MyClone($pHead){//1.將A->B->C 變為A->A1->B->B1->C->C1$cu=$pHead;while ($cu!=null) {$new = new RandomListNode($cu->label);$new->next=$cu->next;$cu->next=$new;$cu=$new->next; }//2.如果原始鏈表上的節點N的random指向S,則對應的復制節點N'的random指向S的下一個節點S'$cu=$pHead;while ($cu!=null) {$cu->next->random=$cu->random->next;$cu=$cu->next->next;}//3.拆分$head=$pHead->next;$cu=$head;while ($cu!=null) {$cu->next=$cu->next->next;$cu=$cu->next;}return $head;}與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的牛客网(剑指offer) 第二十五题 复杂链表的复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客网(剑指offer) 第二十二题
- 下一篇: Ubuntu14.04下搭建LAMP环境