//题目描述

//输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的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;}

牛客网(剑指offer) 第二十五题 复杂链表的复制相关推荐

  1. 牛客网剑指offer编程实践1-10题

    牛客网剑指offer编程实践1-10题 1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  2. 牛客网剑指offer编程实践41-50题

    41.和为S的连续正数序列 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两 ...

  3. 牛客网剑指offer编程实践21-30题

    21.栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5, ...

  4. 牛客网-剑指offer 第二题(字符替换)

    //请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. <?php f ...

  5. 牛客网剑指offer编程实践51-66题

    51. 构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不 ...

  6. 牛客网剑指offer编程实践31-40题

    31. 整数中1出现的次数(从1到n整数中1出现的次数) 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12. ...

  7. 牛客网剑指offer编程实践11-20题

    11.二进制中1的个数 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解答: 方法: 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边 ...

  8. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  9. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

  10. 牛客网剑指offer java 全部题解

    经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助. 每天一道剑指offer-二维数组中 ...

最新文章

  1. iOS单例模式定义与使用
  2. lnmp 切换mysql 版本_LNMP1.5:php多版本切换
  3. intellij idea 1314 插件推荐及快速上手建议
  4. LSMW批处理使用方法(05)_步骤3下
  5. PyTorch基础-线性回归以及非线性回归-02
  6. VC+MO2.0连接ArcSDE并且读出SDE中的空间数据(三)
  7. 和平精英有电脑版吗_和平精英华晨宇代言版-和平精英华晨宇代言版下载v1.9.10...
  8. 模板题——数位DP、状态压缩、记忆化搜索
  9. ENVI5.3.1使用Landsat 8影像进行NDVI计算实例操作
  10. ubuntu eclipseJDK
  11. pandas填充缺失值
  12. 与孩子一起学编程15章
  13. 使用OpenGL绘制shp文件
  14. 三个非负整数 马蹄集
  15. Frank-Wolfe方法
  16. 利用WinRar制作软件更新包
  17. 高通败诉,授权专利技术之后高通的优势不再?
  18. 弥散阴影html,弥漫投影的制作(也叫弥散投影)
  19. Intel Xeon E5-4650 VS AMD Opteron 6380
  20. 杀不死的Service

热门文章

  1. Ubuntu 16.04安装Tomcat 8 图解
  2. Nagios远程监控软件的安装与配置详解
  3. CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF;
  4. 重建控制文件的案例(RESETLOGS模式和NORESETLOGS模式)
  5. 怎样使用DBMS_OUTPUT.PUT_LINE?
  6. IT行业分析之企业信息化技术
  7. python学习笔记(字典)
  8. H.264 Quantization
  9. 链接服务器 '(null)' 的 OLE DB 访问接口'STREAM' 返回了对列 '[!BulkInsert].field' 无效的数据...
  10. css2.1中 firefox 与IE 对margin-top的不同解释