Maison > Article > développement back-end > Partage de code pour fusionner deux listes chaînées triées à l'aide de PHP
Cette fois je vais partager avec vous le code pour fusionner deux listes chaînées triées en PHP. Quelles sont les précautions pour fusionner deux listes chaînées triées en PHP Voici un cas pratique, jetons un oeil. .
Problème
Entrer deux listes chaînées croissantes de manière monotone et afficher la liste chaînée combinée des deux listes chaînées. Bien sûr, nous avons besoin de la liste chaînée combinée pour satisfaire la liste chaînée. règle non décroissante.
Solution
Tri par fusion simple. Étant donné que les deux tableaux augmentent de manière inhérente, prenez simplement la plus petite partie des deux tableaux à chaque fois.
Code d'implémentation
<?php /*class ListNode{ var $val; var $next = NULL; function construct($x){ $this->val = $x; } }*/ function Merge($pHead1, $pHead2) { if($pHead1 == NULL) return $pHead2; if($pHead2 == NULL) return $pHead1; $reHead = new ListNode(); if($pHead1->val < $pHead2->val){ $reHead = $pHead1; $pHead1 = $pHead1->next; }else{ $reHead = $pHead2; $pHead2 = $pHead2->next; } $p = $reHead; while($pHead1&&$pHead2){ if($pHead1->val <= $pHead2->val){ $p->next = $pHead1; $pHead1 = $pHead1->next; $p = $p->next; } else{ $p->next = $pHead2; $pHead2 = $pHead2->next; $p = $p->next; } } if($pHead1 != NULL){ $p->next = $pHead1; } if($pHead2 != NULL) $p->next = $pHead2; return $reHead; }
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez. faites attention aux autres questions connexes dans l'article du site Web PHP chinois !
Lecture recommandée :
Explication détaillée des étapes pour développer un serveur de contrôle à distance WeChat avec PHP
L'imagecopymerge() étapes de fonction pour créer un filigrane translucide Explication détaillée
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!