LeetCode 21. Merge Two Sorted Lists
2016-09-19 13:44
337 查看
描述
合并两个有序链表解决
利用一个临时表头,然后同时遍历这两个链表,连接节点即可。/** * 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) { char buf[sizeof(ListNode)]; ListNode* ptrHead = new(buf) ListNode(-1); ListNode* tmp = nullptr; if (l1 == NULL && l2 == NULL) return NULL; else if (l1 == NULL) return l2; else if (l2 == NULL) return l1; if (l1 -> val > l2 -> val){ ptrHead -> next = l2; tmp = l2; l2 = l2 ? l2 -> next : NULL; }else{ ptrHead -> next = l1; tmp = l1; l1 = l1 ? l1 -> next : NULL; } while (l1 || l2){ if (l1 == NULL){ tmp -> next = l2; tmp = l2; l2 = l2 -> next; break; }else if (l2 == NULL){ tmp -> next = l1; tmp = l1; l1 = l1 -> next; break; }else if (l1 -> val > l2 -> val){ tmp -> next = l2; tmp = l2; l2 = l2 -> next; }else{ tmp -> next = l1; tmp = l1; l1 =l1 -> next; } } return ptrHead -> next; } };
相关文章推荐
- LeetCode 21. Merge Two Sorted Lists
- 21. Merge Two Sorted Lists leetcode Python 2016 new Season
- 【LeetCode】21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists 两个单向链表合并 指针与解指针
- leetcode21. Merge Two Sorted Lists
- LeetCode: 21. Merge Two Sorted Lists
- LeetCode-21. Merge Two Sorted Lists
- [leetcode] 21. Merge Two Sorted Lists 解题报告
- [LeetCode]21. Merge Two Sorted Lists
- leetcode21. Merge Two Sorted Lists
- LeetCode21. Merge Two Sorted Lists
- 21. Merge Two Sorted Lists leetcode(lists)
- leetcode解题报告21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists 两个有序列表合成一个
- LeetCode 21. Merge Two Sorted Lists 题解 —— Java
- Leetcode题解 21. Merge Two Sorted Lists
- LeetCode题解(Week2):21. Merge Two Sorted Lists
- leetcode_效率题解_[python/C++]_21. Merge Two Sorted Lists(合并2个有序链表)
- LeetCode21. Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists