【leetcode】14. Merge two sorted lists 合併兩個排序列表
阿新 • • 發佈:2018-12-13
這個題目用到了連結串列,實質就是將兩個有序連結串列進行合併,合併後的連結串列應該也是有序的。
具體程式碼為:
/** * 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; if(l1->val <= l2->val){ l1->next = mergeTwoLists(l1->next,l2); return l1; } else{ l2->next = mergeTwoLists(l1,l2->next); return l2; } } };
用的是一個遞迴的方法,實際上效率很低,僅打敗33%,對於
ListNode(int x) : val(x), next(NULL) {}
相當於一個建構函式,val 初值為x,next 為null.