lintcode-2つのソートチェーンテーブルをマージ
1709 ワード
1.テーマ
2つのソートチェーンテーブルを新しいソートチェーンテーブルに結合
2.考え方
新しいチェーンテーブルを作成し、指定した2つのチェーンテーブルを最初から比較し、毎回小さい(<=)値を新しいチェーンテーブルに挿入します.与えられた2つのチェーンテーブルは順序付けされているため、2つのチェーンテーブルが異なる場合は、新しいチェーンテーブルに長チェーンテーブルの後半部を直接挿入します.1つのチェーンテーブルが空の場合、別の空でないものを直接新しいチェーンテーブルに挿入することに相当します.新しいチェーンテーブルに戻ると合併して順番に並べたチェーンテーブルです~~~
3.コード
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */class Solution { public: /** * @param ListNode l1 is the head of the linked list * @param ListNode l2 is the head of the linked list * @return: ListNode head of linked list */ ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { //write your code here ListNode *dummy=new ListNode(0); ListNode *p=dummy; while(l1!=NULL&&l2!=NULL) { if(l1->val<=l2->val) { p->next=l1; l1=l1->next; p=p->next; } else { p->next=l2; l2=l2->next; p=p->next; } } if(l1!=NULL) { p->next=l1;} else { p->next=l2; } return dummy->next; } };
4.感想
私はチェーンテーブルの和を求めてまたやったこの問題をして、もしはっきりしないならば、2つの問題の挿入を新しいチェーンテーブルの操作に混同しました.しかしチェーンテーブルの和を求めるには、キャリーを考慮して最後に長いチェーンテーブルにwhileループを使う必要がありますが、連結チェーンテーブルではループを使わずに長いセグメントを新しいチェーンテーブルに挿入すればいいのです~この問題は簡単で、書いて調整すればいいので、楽しいです!
2つのソートチェーンテーブルを新しいソートチェーンテーブルに結合
1->3->8->11->15->null
2->null
が与えられ、1->2->3->8->11->15->null
が返される.2.考え方
新しいチェーンテーブルを作成し、指定した2つのチェーンテーブルを最初から比較し、毎回小さい(<=)値を新しいチェーンテーブルに挿入します.与えられた2つのチェーンテーブルは順序付けされているため、2つのチェーンテーブルが異なる場合は、新しいチェーンテーブルに長チェーンテーブルの後半部を直接挿入します.1つのチェーンテーブルが空の場合、別の空でないものを直接新しいチェーンテーブルに挿入することに相当します.新しいチェーンテーブルに戻ると合併して順番に並べたチェーンテーブルです~~~
3.コード
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */class Solution { public: /** * @param ListNode l1 is the head of the linked list * @param ListNode l2 is the head of the linked list * @return: ListNode head of linked list */ ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { //write your code here ListNode *dummy=new ListNode(0); ListNode *p=dummy; while(l1!=NULL&&l2!=NULL) { if(l1->val<=l2->val) { p->next=l1; l1=l1->next; p=p->next; } else { p->next=l2; l2=l2->next; p=p->next; } } if(l1!=NULL) { p->next=l1;} else { p->next=l2; } return dummy->next; } };
4.感想
私はチェーンテーブルの和を求めてまたやったこの問題をして、もしはっきりしないならば、2つの問題の挿入を新しいチェーンテーブルの操作に混同しました.しかしチェーンテーブルの和を求めるには、キャリーを考慮して最後に長いチェーンテーブルにwhileループを使う必要がありますが、連結チェーンテーブルではループを使わずに長いセグメントを新しいチェーンテーブルに挿入すればいいのです~この問題は簡単で、書いて調整すればいいので、楽しいです!