PHP实现合并两个排序链表的方法


Posted in PHP onJanuary 19, 2018

本文实例讲述了PHP实现合并两个排序链表的方法。分享给大家供大家参考,具体如下:

问题

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

解决思路

简单的合并排序。由于两个数列本来就是递增的,所以每次将两个数列中较小的部分拿过来就可以了。

实现代码

<?php
/*class ListNode{
 var $val;
 var $next = NULL;
 function __construct($x){
  $this->val = $x;
 }
}*/
function Merge($pHead1, $pHead2)
{
 if($pHead1 == NULL)
  return $pHead2;
 if($pHead2 == NULL)
  return $pHead1;
 $reHead = new ListNode();
 if($pHead1->val < $pHead2->val){
  $reHead = $pHead1;
  $pHead1 = $pHead1->next;
 }else{
  $reHead = $pHead2;
  $pHead2 = $pHead2->next;
 }
 $p = $reHead;
 while($pHead1&&$pHead2){
  if($pHead1->val <= $pHead2->val){
   $p->next = $pHead1;
   $pHead1 = $pHead1->next;
   $p = $p->next;
  }
  else{
   $p->next = $pHead2;
   $pHead2 = $pHead2->next;
   $p = $p->next;
  }
 }
 if($pHead1 != NULL){
  $p->next = $pHead1;
 }
 if($pHead2 != NULL)
  $p->next = $pHead2;
 return $reHead;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
详谈php静态方法及普通方法的区别
Oct 04 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 #PHP
php通过header发送自定义数据方法
Jan 18 #PHP
PHP实现从上往下打印二叉树的方法
Jan 18 #PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 #PHP
PHP获取二叉树镜像的方法
Jan 17 #PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 #PHP
You might like
Protoss建筑一览
2020/03/14 星际争霸
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
python开发简易版在线音乐播放器
2017/03/03 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
关于Python-faker的函数效果一览
2019/11/28 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
总裁助理岗位职责
2014/02/17 职场文书
职位说明书范文
2014/05/07 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server