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 无限级缓存的类的扩展
Mar 16 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
基于PHP实现数据分页显示功能
May 26 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 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
php 验证码实例代码
2010/06/01 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
jquery multiSelect 多选下拉框
2010/07/09 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
工业学校毕业生自荐书
2014/01/03 职场文书
挂靠协议书范本
2014/04/22 职场文书
学校对教师的评语
2014/04/28 职场文书
离婚协议书样本
2015/01/26 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
医院党建工作总结2015
2015/05/26 职场文书
退休欢送会致辞
2015/07/31 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python