首页 > 编程 > PHP > 正文

PHP如何实现合并两个有序链表为一个有序链表(

2020-03-22 20:11:29
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于PHP如何实现合并两个有序链表为一个有序链表(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

合并两个有序的链表为一个有序的链表:
类似归并排序中合并两个数组的部分
1.遍历链表1和链表2,比较链表1和2中的元素大小
2.如果链表1结点大于链表2的结点,该结点放入第三方链表
3.链表1往下走一步,反之亦如此
4.当两个链表中有一个结束了以后,另一个链表就可以全部放进第三方链表了

list3while 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- nextif list1!=null list3- next=list1if list2!=null list3- next=list2
$linkList=new Node();$linkList- next=null;$temp=$linkList;for($i=1;$i $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 $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教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表