Maison  >  Article  >  développement back-end  >  Partage de code pour fusionner deux listes chaînées triées à l'aide de PHP

Partage de code pour fusionner deux listes chaînées triées à l'aide de PHP

php中世界最好的语言
php中世界最好的语言original
2018-05-19 14:39:241419parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn