PHP如何完成合并2个有序链表为一个有序链表(代码)
发表时间:2025-11-02 来源:浏览器大全整理相关软件相关文章人气:
网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。
本篇文章给大家带来的内容是关于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实现合并两个排序链表详解
以上就是PHP如何实现合并两个有序链表为一个有序链表(代码)的详细内容,更多请关注php中文网其它相关文章!
网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。