赞
踩
每次比较两个首节点,取小,循环比较拿取即可
- /*
- * 思路:两个链表首节点比较,取小者,循环比较插入即可
- */
-
- struct ListNode {
- int val;
- ListNode* next;
- ListNode() : val(0), next(nullptr) {}
- ListNode(int x) : val(x), next(nullptr) {}
- ListNode(int x, ListNode* next) : val(x), next(next) {}
-
- };
-
- class Solution {
- public:
- ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
- ListNode* head = nullptr, * tail = nullptr;
- head = tail = new ListNode();
- while (list1 && list2)
- {
- if (list1->val < list2->val)
- {
- tail->next = list1;
- list1 = list1->next;
- }
- else{
- tail->next = list2;
- list2 = list2->next;
- }
- tail = tail->next;
- }
- if (!list1)
- tail->next = list2;
- if (!list2)
- tail->next = list1;
- return head->next;
- }
- };

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。