LintCode-2つのソートチェーンテーブルをマージ
1428 ワード
タイトルの説明:2つのソートチェーンテーブルを新しいソートチェーンテーブルにマージ
サンプル
2つの头の结点l 1とl 2で2つのチェーンテーブルを遍歴して、结点の値の大きさを比较して、小さいあれは新しいチェーンテーブルに入って、新しいチェーンテーブルは1つの头の结点を定义して、指す结点は値を入れた后に、次の结点に移动して、チェーンテーブルを始めたばかりで空になって、遍歴の中で1つのチェーンテーブルが早めに空に达する情况を考虑します.
キーコード:ListNode*mergeTwoLists(ListNode*l 1,ListNode*l 2){
//write your code here
ListNode *head=NULL;
ListNode *p=head;
ListNode *p1=l1;
ListNode *p2=l2;
if(l1==NULL) return l2;
if(l2==NULL) {return l1;}
while(p1!=NULL&&p2!=NULL)
{ if(p1->valval)
{ p->next=p1;
p1=l1->next;
}
else { p->next=p2;
p2=l2->next;}
p=p->next;
}
if(p1==NULL) p->next=p2;
if(p2==NULL) {p->next=p1;}
return head;
问题の感想:この问题は私は夜更かししてずっと直して、ずっと提出したのは境界を越えて、どこが间违っているのか分からないで、とても焦って、それからコードを学友に见て、やっと私が定义し始めたばかりの新しいチェーンテーブルの头の结点が空であることを発见して、头の结点の数はドメインの中で価値があるため、しかしそれを使わないで、戻る时に头の结点に戻ることができなくて、定义が空なためです.その後,ノードを割り当て,戻るときに返されるヘッダノードが指す開始ノードに変更された.成功しました.
サンプル
1->3->8->11->15->null
2->null
が与えられ、1->2->3->8->11->15->null
が返される.2つの头の结点l 1とl 2で2つのチェーンテーブルを遍歴して、结点の値の大きさを比较して、小さいあれは新しいチェーンテーブルに入って、新しいチェーンテーブルは1つの头の结点を定义して、指す结点は値を入れた后に、次の结点に移动して、チェーンテーブルを始めたばかりで空になって、遍歴の中で1つのチェーンテーブルが早めに空に达する情况を考虑します.
キーコード:ListNode*mergeTwoLists(ListNode*l 1,ListNode*l 2){
//write your code here
ListNode *head=NULL;
ListNode *p=head;
ListNode *p1=l1;
ListNode *p2=l2;
if(l1==NULL) return l2;
if(l2==NULL) {return l1;}
while(p1!=NULL&&p2!=NULL)
{ if(p1->valval)
{ p->next=p1;
p1=l1->next;
}
else { p->next=p2;
p2=l2->next;}
p=p->next;
}
if(p1==NULL) p->next=p2;
if(p2==NULL) {p->next=p1;}
return head;
问题の感想:この问题は私は夜更かししてずっと直して、ずっと提出したのは境界を越えて、どこが间违っているのか分からないで、とても焦って、それからコードを学友に见て、やっと私が定义し始めたばかりの新しいチェーンテーブルの头の结点が空であることを発见して、头の结点の数はドメインの中で価値があるため、しかしそれを使わないで、戻る时に头の结点に戻ることができなくて、定义が空なためです.その後,ノードを割り当て,戻るときに返されるヘッダノードが指す開始ノードに変更された.成功しました.