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 rawurlencode与urlencode函数的深入分析
Jun 08 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
你应该知道PHP浮点数知识
May 13 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
PHP中rename()函数的妙用讲解
Feb 28 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
关于PHP求解三数之和问题详析
Nov 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 如何获取数组第一个值
2013/08/06 PHP
php实现无限级分类
2014/12/24 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
nodejs基础知识
2017/02/03 NodeJs
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
Python json转字典字符方法实例解析
2020/04/13 Python
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
办公室文员自荐书
2014/02/03 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
内勤岗位职责
2015/02/10 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
python ansible自动化运维工具执行流程
2021/06/24 Python
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫
python前后端自定义分页器
2022/04/13 Python