各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

php如何实现反转链表(代码实例)

管理员 2023-09-05
PHP
125

php如何实现反转链表(代码实例)

内容导读

收集整理的这篇技术教程文章主要介绍了php如何实现反转链表(代码实例),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2467字,纯文字阅读大概需要4分钟

内容图文

本篇文章给大家带来的内容是关于php如何实现反转链表(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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}
<?phpclass Node{        public $data;        public $next;}//头插法创建一个链表$linkList=new Node();$linkList->next=null;//头结点for($i=1;$i<=10;$i++){        $node=new Node();        $node->data="aaa{$i}";//创建新结点$node        $node->next=$linkList->next;//$node->next指向头结点->next        $linkList->next=$node;//头结点->next指向$node}var_dump($linkList);function ReverseList($pHead){        $old=$pHead->next;//跳过头结点        $new=null;        $tmp=null;        //反转过程        while($old!=null){                $tmp=$old->next;                $old->next=$new;                $new=$old;                $old=$tmp;        }           //给新链表加个头结点        $newHead=new Node();        $newHead->next=$new;        var_dump($newHead);}ReverseList($linkList);
object(Node)#1 (2) {  ["data"]=>  NULL  ["next"]=>  object(Node)#11 (2) {    ["data"]=>    string(5) "aaa10"    ["next"]=>    object(Node)#10 (2) {      ["data"]=>      string(4) "aaa9"      ["next"]=>      object(Node)#9 (2) {        ["data"]=>        string(4) "aaa8"        ["next"]=>        object(Node)#8 (2) {          ["data"]=>          string(4) "aaa7"          ["next"]=>          object(Node)#7 (2) {            ["data"]=>            string(4) "aaa6"            ["next"]=>            object(Node)#6 (2) {              ["data"]=>              string(4) "aaa5"              ["next"]=>              object(Node)#5 (2) {                ["data"]=>                string(4) "aaa4"                ["next"]=>                object(Node)#4 (2) {                  ["data"]=>                  string(4) "aaa3"                  ["next"]=>                  object(Node)#3 (2) {                    ["data"]=>                    string(4) "aaa2"                    ["next"]=>                    object(Node)#2 (2) {                      ["data"]=>                      string(4) "aaa1"                      ["next"]=>                      NULL                    }                  }                }              }            }          }        }      }    }  }}object(Node)#12 (2) {  ["data"]=>  NULL  ["next"]=>  object(Node)#2 (2) {    ["data"]=>    string(4) "aaa1"    ["next"]=>    object(Node)#3 (2) {      ["data"]=>      string(4) "aaa2"      ["next"]=>      object(Node)#4 (2) {        ["data"]=>        string(4) "aaa3"        ["next"]=>        object(Node)#5 (2) {          ["data"]=>          string(4) "aaa4"          ["next"]=>          object(Node)#6 (2) {            ["data"]=>            string(4) "aaa5"            ["next"]=>            object(Node)#7 (2) {              ["data"]=>              string(4) "aaa6"              ["next"]=>              object(Node)#8 (2) {                ["data"]=>                string(4) "aaa7"                ["next"]=>                object(Node)#9 (2) {                  ["data"]=>                  string(4) "aaa8"                  ["next"]=>                  object(Node)#10 (2) {                    ["data"]=>                    string(4) "aaa9"                    ["next"]=>                    object(Node)#11 (2) {                      ["data"]=>                      string(5) "aaa10"                      ["next"]=>                      NULL                    }                  }                }              }            }          }        }      }    }  }}

相关推荐:

关于PHP如何实现链表的定义与反转功能

php实现单链表的实例代码_PHP教程

以上就是php如何实现反转链表(代码实例)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php如何实现反转链表(代码实例)全部内容,希望文章能够帮你解决php如何实现反转链表(代码实例)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部