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 超链接 抓取实现代码
Jun 29 PHP
php学习之流程控制实现代码
Jun 09 PHP
php中autoload的用法总结
Nov 08 PHP
php通过session防url攻击方法
Dec 10 PHP
php清除和销毁session的方法分析
Mar 19 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
PHP获取数组最大值下标的方法
May 12 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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
解析zend Framework如何自动加载类
2013/06/28 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
JavaScript简介
2015/02/15 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python time库基本使用方法分析
2019/12/13 Python
python装饰器使用实例详解
2019/12/14 Python
python super用法及原理详解
2020/01/20 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
检查接待方案
2014/02/27 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
师德标兵事迹材料
2014/12/19 职场文书
校园广播站开场白
2015/06/01 职场文书
培训简讯范文
2015/07/20 职场文书
高中英语教学反思范文
2016/03/02 职场文书