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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
使用PHP导出Word文档的原理和实例
Oct 21 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
PHP自定义错误用法示例
Sep 28 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
Yii 框架使用Forms操作详解
May 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php中如何防止表单的重复提交
2013/08/02 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
php操作mongoDB实例分析
2014/12/29 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
用cssText批量修改样式
2009/08/29 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
各个系统下的Python解释器相关安装方法
2015/10/12 Python
深入浅析python 中的匿名函数
2018/05/21 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python实现猜拳小游戏
2020/04/05 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
求职自我评价范文100字
2014/09/23 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
JavaScript实现简单计时器
2021/06/22 Javascript
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL