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

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如何实现反转链表(代码实例)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

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


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com