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

[PHP] 数据结构-反转链表PHP实现

发布时间:2020-05-25 03:11:01 所属栏目:PHP 来源:互联网
导读:1.常见方法分为迭代和递归,迭代是从头到尾,递归是从尾到头2.设置两个指针,old和new,每一项添加在new的后面,新链表头指针指向新的链表头3.old-next不能直接指向new,而是应该设置一个临时指针tmp,指向old-next指向的地址空间,保存原链表数据,然后old-next指向ne

1.常见方法分为迭代和递归,迭代是从头到尾,递归是从尾到头2.设置两个指针,old和new,每一项添加在new的后面,新链表头指针指向新的链表头3.old->next不能直接指向new,而是应该设置一个临时指针tmp,指向old->next指向的地址空间,保存原链表数据,然后old->next指向new,new往前移动到old处new=old,最后old=tmp取回数据while(old!=null){   tmp=old->next   old->next=new   new=old   old=tmp}

=; (=1;<=10;++=->data="aaa{}"; ->=->;next指向头结点->next ->=;next指向$node <span style="color: #008080">var_dump(<span style="color: #800080">$linkList<span style="color: #000000">);

<span style="color: #0000ff">function ReverseList(<span style="color: #800080">$pHead<span style="color: #000000">){
<span style="color: #800080">$old=<span style="color: #800080">$pHead-><span style="color: #008080">next;<span style="color: #008000">//<span style="color: #008000">跳过头结点
<span style="color: #800080">$new=<span style="color: #0000ff">null<span style="color: #000000">;
<span style="color: #800080">$tmp=<span style="color: #0000ff">null<span style="color: #000000">;
<span style="color: #008000">//<span style="color: #008000">反转过程
<span style="color: #0000ff">while(<span style="color: #800080">$old!=<span style="color: #0000ff">null<span style="color: #000000">){
<span style="color: #800080">$tmp=<span style="color: #800080">$old-><span style="color: #008080">next<span style="color: #000000">;
<span style="color: #800080">$old-><span style="color: #008080">next=<span style="color: #800080">$new<span style="color: #000000">;
<span style="color: #800080">$new=<span style="color: #800080">$old<span style="color: #000000">;
<span style="color: #800080">$old=<span style="color: #800080">$tmp<span style="color: #000000">;
}
<span style="color: #008000">//<span style="color: #008000">给新链表加个头结点
<span style="color: #800080">$newHead=<span style="color: #0000ff">new<span style="color: #000000"> Node();
<span style="color: #800080">$newHead-><span style="color: #008080">next=<span style="color: #800080">$new<span style="color: #000000">;
<span style="color: #008080">var_dump(<span style="color: #800080">$newHead<span style="color: #000000">);
}
ReverseList(<span style="color: #800080">$linkList);

(Node) ["data"]=> "next"]=> (Node) ["data"]=> (5) "aaa10""next"]=> (Node) ["data"]=> (4) "aaa9""next"]=> (Node) ["data"]=> (4) "aaa8""next"]=> (Node) ["data"]=> (4) "aaa7""next"]=> (Node) ["data"]=> (4) "aaa6""next"]=> (Node) ["data"]=> (4) "aaa5""next"]=> (Node) ["data"]=> (4) "aaa4""next"]=> (Node) ["data"]=> (4) "aaa3""next"]=> (Node) ["data"]=> (4) "aaa2""next"]=> (Node) ["data"]=> (4) "aaa1""next"]=> (Node) ["data"]=> "next"]=> (Node) ["data"]=> (4) "aaa1""next"]=> (Node) ["data"]=> (4) "aaa2""next"]=> (Node) ["data"]=> (4) "aaa3""next"]=> (Node) ["data"]=> (4) "aaa4""next"]=> (Node) ["data"]=> (4) "aaa5""next"]=> (Node) ["data"]=> (4) "aaa6""next"]=> (Node) ["data"]=> (4) "aaa7""next"]=> (Node) ["data"]=> (4) "aaa8""next"]=> (Node) ["data"]=> (4) "aaa9""next"]=> (Node) ["data"]=> (5) "aaa10""next"]=>

(编辑:安卓应用网)

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

    推荐文章
      热点阅读