本篇文章给大家带来的内容是关于PHP如何实现合并两个有序链表为一个有序链表(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

合并两个有序的链表为一个有序的链表:

类似归并排序中合并两个数组的部分

1.遍历链表1和链表2,比较链表1和2中的元素大小

2.如果链表1结点大于链表2的结点,该结点放入第三方链表

3.链表1往下走一步,反之亦如此

4.当两个链表中有一个结束了以后,另一个链表就可以全部放进第三方链表了list3

while list1!=null list2!=null

if list1->data >= list2->data

list3->next=list1

list3=list1 //当前指针后移

list1=list1->next //链表1走一步

else

list3->next=list2

list3=list2

list2=list2->next

if list1!=null

list3->next=list1

if list2!=null

list3->next=list2$linkList=new Node();

$linkList->next=null;

$temp=$linkList;

for($i=1;$i<=10;$i+=2){

$node=new Node();

$node->data=$i;

$node->next=null;

$temp->next=$node;

$temp=$node;

}

//第二个有序的链表

$list2=new Node();

$temp=$list2;

for($i=2;$i<=10;$i+=2){

$node=new Node();

$node->data=$i;

$node->next=null;

$temp->next=$node;

$temp=$node;

}

//合并两个链表

$newlist=new Node();

$list1=$linkList->next;//跳过头结点

$list2=$list2->next;

$list3=$newlist;//一定要赋予给这个临时结点,否则新结点前移的时候就会被覆盖

while($list1!=null && $list2!=null){

if($list1->data<=$list2->data){

$list3->next=$list1;//新链表指向链表1结点

$list3=$list1;//新链表当前结点往前移动

$list1=$list1->next;//链表1往前移动

}else{

$list3->next=$list2;

$list3=$list2;

$list2=$list2->next;

}

}

if($list1!=null){

$list3->next=$list1;

}

if($list2!=null){

$list3->next=$list2;

}

var_dump($newlist);

相关推荐:

php合并两个有序链表,PHP如何实现合并两个有序链表为一个有序链表(代码)相关推荐

  1. 两个无序单链表,排序后合并成一个有序链表

    两个无序单链表,排序后合并成一个有序链表 算法思想:用冒泡法,对链表1和2进行排序,对排序后的两个链表,从小到大进行循环,装入链表3中. #include<stdio.h> #includ ...

  2. [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现

    合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...

  3. python创建一个有序链表_Python实现合并两个有序链表的方法示例

    本文实例讲述了Python实现合并两个有序链表的方法.分享给大家供大家参考,具体如下: 思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一 ...

  4. 两个非递减有序单链表La和Lb合并成一个非递增有序链表Lc

    #include<iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  5. c语言将两个有序表合并为一个有序表,c语言实现两个有序链表的合并(代码示例)...

    本篇文章通过代码示例介绍一下使用c语言合并两个有序链表的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 教程推荐:<c语言教程视频> c语言实现两个有序链表的合并 ...

  6. c语言求两个有序表合成差集代码,两个有序链表求差集,合并为一个有序链表...

    小白今天刚入门数据结构,正在学习<数据结构高分笔记>,其中第35页仿真题目(2)完成情况如下,如有错误,不吝赐教. 题目要求:已知递增有序的单链表A,B,元素个数分别m,n,分别存储一个集 ...

  7. 每天一道LeetCode-----合并两个/多个有序链表为一个新链表

    Merge Sorted Array 原题链接Merge Sorted Array 意思是给定两个有序数组,将其合并成一个有序数组,存在nums1中. 如果先只是简单合并成一个新数组,然后将新数组赋值 ...

  8. 有序链表和数组的合并

    一:链表的合并 思路分析1(双指针解法) 1:定义两个指针遍历l1,l2分别指向第一条链表的头结点list1和第二条链表的头结点list2: 2:定义一个空节点preNode,用于连接两条有序链表,定 ...

  9. 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。

    1.给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 ...

  10. 将两个单链表合并为一个单链表

    将两个单链表合并为一个单链表(C语言实现) 目的:掌握单链表的应用和算法设计 内容:L1 =(x1, x2, -, xn ),L2 =(y1, y2, -, ym ),他们是两个线性表,采用带头结点的 ...

最新文章

  1. kali linux 下载百度云大文件
  2. nsdata是java什么类型_Swift中基本数据类型与NSData转换
  3. .NET系统学习----Globalization Resources
  4. 单单表单独占一行_数据透视表→Alt+D+P?
  5. mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]
  6. Spring 学习教程(一): 认识 Spring 框架
  7. 这些.Net的细节(面试秘笈),你都知道了吗?
  8. 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节
  9. 淘宝、京东等下架火箭队相关商品,回应:涉及主权问题没有讨价还价余地
  10. SAP License:赛锐信息访谈启示录(五)
  11. 面试被问到会不会移动端_问题解答 | 盘点教师资格证面试时一般会问到的问题...
  12. java resource和,java_spring之Autowired与Resource差异解析
  13. [Python] L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
  14. 开发人员常用的Oracle导入/导出命令
  15. 小程序毕设选题参考springboot学生选课小程序 java选课系统小程序 在线选课小程序 选课报名小程序 ssm选课系统 uniapp线上选课报名小程序
  16. graphpad两组t检验_Graphpad Prism如何科学地选择统计学方法
  17. Unity3d优化总结2
  18. 【239天】网易云课堂计算机专业基础课程系列——计算机专业导论(4)
  19. 微信小程序商城项目实战(第七篇:生成订单支付页)
  20. 软件工程师薪酬最高的25家公司!!!

热门文章

  1. “渠道之王”2.0   百丽携手乐淘的背后
  2. socket网络编程知识
  3. 设计模式 - 模版方法
  4. 机器学习算法与Python学习
  5. Linux命令——uptime
  6. table中background背景图片自动拉伸
  7. 前端开源项目周报0103
  8. 在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)
  9. libudev-dev : Depends: libudev0 (= 175-0ubuntu9) but 175-0ubuntu9.3 is to be installed 错误解决方案...
  10. Uploading SSH public key ... failed!