1. 程式人生 > >leetcode21. Merge Two Sorted Lists(連結串列)

leetcode21. Merge Two Sorted 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) return l2; if(!l2) return l1; ListNode *l3 = NULL; if(l1->val <= l2->val) //不必考慮頭節點資料, 使用l1&l2初始化l3 l3 = l1, l1 = l1->next; else l3 = l2, l2 = l2->next; ListNode *
p = l3; while(l1 && l2){ if(l1->val <= l2->val) p->next = l1, l1 = l1->next; //防止空鏈 else p->next = l2, l2 = l2->next; p = p->next; } p->next = (l1?l1:l2); //剩餘節點直接接在後面
return l3; } };