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语法(2)
Oct 09 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
php记录日志的实现代码
Aug 08 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 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
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
JavaScript更改class和id的方法
2008/10/10 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
js word表格动态添加代码
2010/06/07 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python的装饰器使用详解
2017/06/26 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Python占用的内存优化教程
2019/07/28 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
基于python操作ES实例详解
2019/11/16 Python
python入门教程之基本算术运算符
2020/11/13 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
葬礼司仪主持词
2014/03/31 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
自查自纠整改报告
2014/11/06 职场文书
检讨书格式
2015/05/07 职场文书
初中数学课堂教学反思
2016/02/17 职场文书