加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 03:11:05 所属栏目:PHP 来源:互联网
导读:合并两个有序的链表为一个有序的链表:类似归并排序中合并两个数组的部分1.遍历链表1和链表2,比较链表1和2中的元素大小2.如果链表1结点大于链表2的结点,该结点放入第三方链表3.链表1往下走一步,反之亦如此4.当两个链表中有一个结束了以后,另一个链表就可

<div class="cnblogs_code">

1.2.3.4.list3
<span style="color: #0000ff">while list1!=<span style="color: #0000ff">null list2!=<span style="color: #0000ff">null
<span style="color: #0000ff">if list1->data >= list2-><span style="color: #000000">data
list3-><span style="color: #008080">next=<span style="color: #000000">list1
list3=list1 <span style="color: #008000">//<span style="color: #008000">当前指针后移
list1=list1-><span style="color: #008080">next <span style="color: #008000">//<span style="color: #008000">链表1走一步
<span style="color: #0000ff">else<span style="color: #000000">
list3-><span style="color: #008080">next=<span style="color: #000000">list2
list3=<span style="color: #000000">list2
list2=list2-><span style="color: #008080">next

<span style="color: #0000ff">if list1!=<span style="color: #0000ff">null<span style="color: #000000">
list3-><span style="color: #008080">next=<span style="color: #000000">list1
<span style="color: #0000ff">if list2!=<span style="color: #0000ff">null<span style="color: #000000">
list3-><span style="color: #008080">next=list2

=->==(=1;<=10;+=2=->data=->=->== ==(=2;<=10;+=2=->data=->=->==<span style="color: #008000">//<span style="color: #008000">合并两个链表
<span style="color: #800080">$newlist=<span style="color: #0000ff">new<span style="color: #000000"> Node();
<span style="color: #800080">$list1=<span style="color: #800080">$linkList-><span style="color: #008080">next;<span style="color: #008000">//<span style="color: #008000">跳过头结点
<span style="color: #800080">$list2=<span style="color: #800080">$list2-><span style="color: #008080">next<span style="color: #000000">;

<span style="color: #800080">$list3=<span style="color: #800080">$newlist;<span style="color: #008000">//<span style="color: #008000">一定要赋予给这个临时结点,否则新结点前移的时候就会被覆盖
<span style="color: #0000ff">while(<span style="color: #800080">$list1!=<span style="color: #0000ff">null && <span style="color: #800080">$list2!=<span style="color: #0000ff">null<span style="color: #000000">){
<span style="color: #0000ff">if(<span style="color: #800080">$list1->data<=<span style="color: #800080">$list2-><span style="color: #000000">data){
<span style="color: #800080">$list3-><span style="color: #008080">next=<span style="color: #800080">$list1;<span style="color: #008000">//<span style="color: #008000">新链表指向链表1结点
<span style="color: #800080">$list3=<span style="color: #800080">$list1;<span style="color: #008000">//<span style="color: #008000">新链表当前结点往前移动
<span style="color: #800080">$list1=<span style="color: #800080">$list1-><span style="color: #008080">next;<span style="color: #008000">//<span style="color: #008000">链表1往前移动
}<span style="color: #0000ff">else<span style="color: #000000">{
<span style="color: #800080">$list3-><span style="color: #008080">next=<span style="color: #800080">$list2<span style="color: #000000">;
<span style="color: #800080">$list3=<span style="color: #800080">$list2<span style="color: #000000">;
<span style="color: #800080">$list2=<span style="color: #800080">$list2-><span style="color: #008080">next<span style="color: #000000">;
}
}
<span style="color: #0000ff">if(<span style="color: #800080">$list1!=<span style="color: #0000ff">null<span style="color: #000000">){
<span style="color: #800080">$list3-><span style="color: #008080">next=<span style="color: #800080">$list1<span style="color: #000000">;
}
<span style="color: #0000ff">if(<span style="color: #800080">$list2!=<span style="color: #0000ff">null<span style="color: #000000">){
<span style="color: #800080">$list3-><span style="color: #008080">next=<span style="color: #800080">$list2<span style="color: #000000">;
}

<span style="color: #008080">var_dump(<span style="color: #800080">$newlist);

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读