1. 程式人生 > >leetcode 21 -- Merge Two Sorted Lists

leetcode 21 -- Merge Two Sorted Lists

tro leet lan 常見 ber 題目 tty Language node

Merge Two Sorted Lists

題目:
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.


題意:
合並兩個排序過的鏈表


思路:
這是個非經常見的問題,須要註意的就是給定兩個鏈表是否為空。


代碼:

/**
 * 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) { if(l1 == NULL && l2 == NULL){ return NULL; }else if(l1 == NULL && l2 != NULL){ return l2; }else if(l1 != NULL && l2 == NULL){ return
l1; } //指定頭節點 ListNode *new_head = NULL; if(l1->val < l2->val){ new_head = l1; l1 = l1->next; }else{ new_head = l2; l2 = l2->next; } ListNode *p = new_head; while(l1 != NULL &&
l2 != NULL){ if(l1->val < l2->val){ p->next = l1; p = p->next; l1 = l1->next; }else{ p->next = l2; p = p->next; l2 = l2->next; } } //接上余下的鏈表段 if(l1 != NULL){ p->next = l1; }else{ p->next = l2; } return new_head; } };

leetcode 21 -- Merge Two Sorted Lists