php合并两个有序链表,PHP如何实现合并两个有序链表为一个有序链表(代码)
本篇文章给大家带来的内容是关于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和2进行排序,对排序后的两个链表,从小到大进行循环,装入链表3中. #include<stdio.h> #includ ...
- [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现
合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...
- python创建一个有序链表_Python实现合并两个有序链表的方法示例
本文实例讲述了Python实现合并两个有序链表的方法.分享给大家供大家参考,具体如下: 思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一 ...
- 两个非递减有序单链表La和Lb合并成一个非递增有序链表Lc
#include<iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> ...
- c语言将两个有序表合并为一个有序表,c语言实现两个有序链表的合并(代码示例)...
本篇文章通过代码示例介绍一下使用c语言合并两个有序链表的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 教程推荐:<c语言教程视频> c语言实现两个有序链表的合并 ...
- c语言求两个有序表合成差集代码,两个有序链表求差集,合并为一个有序链表...
小白今天刚入门数据结构,正在学习<数据结构高分笔记>,其中第35页仿真题目(2)完成情况如下,如有错误,不吝赐教. 题目要求:已知递增有序的单链表A,B,元素个数分别m,n,分别存储一个集 ...
- 每天一道LeetCode-----合并两个/多个有序链表为一个新链表
Merge Sorted Array 原题链接Merge Sorted Array 意思是给定两个有序数组,将其合并成一个有序数组,存在nums1中. 如果先只是简单合并成一个新数组,然后将新数组赋值 ...
- 有序链表和数组的合并
一:链表的合并 思路分析1(双指针解法) 1:定义两个指针遍历l1,l2分别指向第一条链表的头结点list1和第二条链表的头结点list2: 2:定义一个空节点preNode,用于连接两条有序链表,定 ...
- 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
1.给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 ...
- 将两个单链表合并为一个单链表
将两个单链表合并为一个单链表(C语言实现) 目的:掌握单链表的应用和算法设计 内容:L1 =(x1, x2, -, xn ),L2 =(y1, y2, -, ym ),他们是两个线性表,采用带头结点的 ...
最新文章
- kali linux 下载百度云大文件
- nsdata是java什么类型_Swift中基本数据类型与NSData转换
- .NET系统学习----Globalization Resources
- 单单表单独占一行_数据透视表→Alt+D+P?
- mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]
- Spring 学习教程(一): 认识 Spring 框架
- 这些.Net的细节(面试秘笈),你都知道了吗?
- 详解API Gateway流控实现,揭开ROMA平台高性能秒级流控的技术细节
- 淘宝、京东等下架火箭队相关商品,回应:涉及主权问题没有讨价还价余地
- SAP License:赛锐信息访谈启示录(五)
- 面试被问到会不会移动端_问题解答 | 盘点教师资格证面试时一般会问到的问题...
- java resource和,java_spring之Autowired与Resource差异解析
- [Python] L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
- 开发人员常用的Oracle导入/导出命令
- 小程序毕设选题参考springboot学生选课小程序 java选课系统小程序 在线选课小程序 选课报名小程序 ssm选课系统 uniapp线上选课报名小程序
- graphpad两组t检验_Graphpad Prism如何科学地选择统计学方法
- Unity3d优化总结2
- 【239天】网易云课堂计算机专业基础课程系列——计算机专业导论(4)
- 微信小程序商城项目实战(第七篇:生成订单支付页)
- 软件工程师薪酬最高的25家公司!!!
热门文章
- “渠道之王”2.0 百丽携手乐淘的背后
- socket网络编程知识
- 设计模式 - 模版方法
- 机器学习算法与Python学习
- Linux命令——uptime
- table中background背景图片自动拉伸
- 前端开源项目周报0103
- 在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)
- libudev-dev : Depends: libudev0 (= 175-0ubuntu9) but 175-0ubuntu9.3 is to be installed 错误解决方案...
- Uploading SSH public key ... failed!