lintcode-2つのソートチェーンテーブルをマージ


1.テーマ
2つのソートチェーンテーブルを新しいソートチェーンテーブルに結合1->3->8->11->15->null2->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ループを使う必要がありますが、連結チェーンテーブルではループを使わずに長いセグメントを新しいチェーンテーブルに挿入すればいいのです~この問題は簡単で、書いて調整すればいいので、楽しいです!