ホームページ >バックエンド開発 >PHPチュートリアル >PHPでリンクリストを逆にする方法(コード例)
この記事の内容は、PHP での逆リンクリストの実装方法 (コード例) に関するもので、一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。
1. 一般的なメソッドは反復と再帰に分けられます。反復は最初から最後まで、再帰は最後から最初までです。
2. 新旧の 2 つのポインターを設定し、各項目を後に追加します。 new. 新しいリンク リストのヘッド ポインタは、新しいリンク リストのヘッド
3 を指します。old->next は new を直接指すことはできませんが、一時ポインタ tmp は、old->gt が指すアドレス空間を指すように設定する必要があります。 ;次に、元のリンク リスト データを保存し、old->next が new をポイントし、new が old に進み、new=old、最後に old=tmp でデータが取得されます
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 } } } } } } } } } } }
関連推奨事項:
PHP についてリンク リストの定義と反転関数を実装する方法
単一リンク リストを実装するための php サンプル コード_PHP チュートリアル
以上がPHPでリンクリストを逆にする方法(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。