質問is- 2つのソート済みリンクリストをマージします。 詳細-visit https://www.hackerrank.com/challenges/merge-two-sorted-linked-lists サイトでこれを送信すると、「タイムアウトのために終了しました」と表示されます。コードの問題とその修正方法を教えてください。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;
}
}
あなたは、アルゴリズムの試みが何をすべきかを言葉で説明できますか? (マージリストよりも詳細) –
結果リストの先頭としてtが指定されたifステートメントのhをh.nextに設定するステートメントは正しくありません。 hは、次のフィールドに後続ノードへのリンクを設定する必要があるノードを指しますが、最初のノードではこれが最初のノードです。それ以降はそれを進めることになります。また、最後のif文が正しく見えません。それは左側にh.nextを含むべきであり、対称的でなければならない。 AとBのリストです。 – laune
launeありがとう、私はそれを理解しました。 –