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 相关文章推荐
常用表单验证类,有了这个,一般的验证就都齐了。
Dec 06 PHP
linux php mysql数据库备份实现代码
Mar 10 PHP
PHP MVC模式在网站架构中的实现分析
Mar 04 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
PHP array 的加法操作代码
Jul 24 PHP
php采集时被封ip的解决方法
Aug 29 PHP
ThinkPHP安装和设置
Jul 27 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 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的输出:缓存并压缩动态页面
2013/06/11 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
毕业生自荐信格式
2014/03/07 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
会议通知
2015/04/15 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
app场景下uniapp的扫码记录
2022/07/23 Java/Android