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 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
openflashchart 2.0 简单案例php版
May 21 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 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 验证图片生成函数
2009/05/21 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
PHP实现添加购物车功能
2017/03/06 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
jQuery参数列表集合
2011/04/06 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
详解实现vue的数据响应式原理
2021/01/20 Vue.js
Python中多线程的创建及基本调用方法
2016/07/08 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python线程中同步锁详解
2018/04/27 Python
python保存网页图片到本地的方法
2018/07/24 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
python将txt文件读取为字典的示例
2018/12/22 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
python re模块和正则表达式
2021/03/24 Python
工作失职检讨书范文
2014/01/16 职场文书
体操比赛口号
2014/06/10 职场文书
黑白记忆观后感
2015/06/18 职场文书
党员干部学习心得体会
2016/01/23 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS