PHP如何实现合并两个有序链表为一个有序链表(代码)
内容导读
收集整理的这篇技术教程文章主要介绍了PHP如何实现合并两个有序链表为一个有序链表(代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1657字,纯文字阅读大概需要3分钟。
内容图文
本篇文章给大家带来的内容是关于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<=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如何实现合并两个有序链表为一个有序链表(代码)的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的PHP如何实现合并两个有序链表为一个有序链表(代码)全部内容,希望文章能够帮你解决PHP如何实现合并两个有序链表为一个有序链表(代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。