Der Inhalt dieses Artikels befasst sich mit der Implementierung einer umgekehrt verknüpften Liste (Codebeispiel) Es hat einen gewissen Referenzwert. Ich hoffe, dass es für Sie hilfreich ist.
1. Übliche Methoden sind in Iteration und Rekursion unterteilt, und die Rekursion erfolgt vom Ende zum Anfang.
2 new. Der neue Kopfzeiger der verknüpften Liste zeigt auf den Kopf der neuen verknüpften Liste
3. old->next kann nicht direkt auf new zeigen, aber ein temporärer Zeiger tmp sollte so eingestellt werden, dass er auf den Adressraum zeigt, auf den old->next zeigt. >next speichert die ursprünglichen Daten der verknüpften Liste, und dann zeigt old->next auf neu, new geht vorwärts zu alt, new=old und schließlich old=tmp ruft Daten ab
while(old!=null){ tmp=old->next old->next=new new=old old=tmp }
<?php class 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 } } } } } } } } } } }
Verwandt Empfehlungen:
Über PHP, wie man die Definitions- und Umkehrfunktion einer verknüpften Liste implementiert
PHP-Beispielcode für die Implementierung einer einfach verknüpften Liste_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonSo kehren Sie verknüpfte Listen in PHP um (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!