Question is- Fusionner deux listes liées triées. Pour plus de détails -visiter https://www.hackerrank.com/challenges/merge-two-sorted-linked-lists Lorsque je le soumets sur le site, il affiche «Terminé en raison de délai d'attente» .S'il vous plaît me dire ce qui ne va pas avec le code, et comment y remédier.Pourquoi ce code est affiché terminé à cause de timeout sur hackerrank
Node MergeLists(Node headA, Node headB) {
// This is a "method-only" submission.
// You only need to complete this method
if(headA==null){
return headB;
}else if(headB==null){
return headA;
}else{
Node h,t;
if(headA.data>=headB.data){
h=headB;
t=h;
h=h.next;
headB=headB.next;
}else{
h=headA;
t=h;
h=h.next;
headA=headA.next;
}
while(headA!=null && headB!=null){
if(headA.data>=headB.data){
h.next=headB;
h=h.next;
headB=headB.next;
}else{
h=headA;
h=h.next;
headA=headA.next;
}
}
if(headB==null){
h=headA;
}
return t;
}
}
Pouvez-vous expliquer avec des mots ce que votre algorithme tente de le faire? (plus en détail que les listes de fusion) –
Les instructions qui définissent h sur h.next dans l'instruction if, où t en tant que tête de la liste de résultats est déterminée, sont incorrectes. h pointe vers le noeud où le lien vers le successeur doit être défini dans le champ suivant, mais pour le premier noeud, il s'agit du premier noeud; seulement après cela il doit être avancé. En outre, la dernière instruction if ne semble pas correcte; il devrait contenir un h.next sur le côté gauche et devrait être symétrique w.r.t. listes A et B. – laune
Merci laune, je l'ai compris. –