您好,登錄后才能下訂單哦!
/首先判斷兩個鏈表是否為空,如果其中一個為空則返回另一個鏈表的頭結點,若都是空,則返回空;其次比較兩個數組,選取較小的頭結點作為新鏈表的頭結點,然后依次鏈接比較其余節點。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode*L = NULL, *q = NULL; if (l1 == NULL&&l2 == NULL) return NULL; if (l1 == NULL&&l2 != NULL) return l2; if (l1 != NULL&&l2 == NULL) return l1; if (l1->val <= l2->val)//選取較小的頭結點為返回的鏈表頭結點; { L = l1; l1 = l1->next; } else { L = l2; l2 = l2->next; } q = L; while (l1 != NULL&&l2 != NULL)//依次比較; { if (l1->val <= l2->val) { q->next = l1; l1 = l1->next; } else { q->next = l2; l2 = l2->next; } q = q->next; } if (l1 != NULL)//當其中一個鏈表比較完后直接將剩余的鏈表插入到返回鏈表的為指針后面; q->next = l1; if (l2 != NULL) q->next = l2; return L; } };
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。