leetcode

21.合并两个有序链表

力扣链接

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
      if (!list1 && !list2) return nullptr;
      std::vector<int> vec;
      ListNode* cur1 = list1, *cur2 =list2;
      while (cur1){
        vec.push_back(cur1->val);
        cur1 = cur1->next;
      }
      while (cur2){
        vec.push_back(cur2->val);
        cur2 = cur2->next;
      }
      std::sort(vec.begin(), vec.end());
      ListNode* head = new ListNode(vec[0]);
      
      ListNode* node = head;
    	for (int i = 1; i < vec.size(); i++){
    		node->next = new ListNode(vec[i]);
    		node = node->next;
    	}

      // 略复杂
      // ListNode* pre = head;
      // for (int i = 1; i < vec.size(); i++){
      //   ListNode* node = new ListNode(vec[i]);
      //   pre->next = node;
      //   pre = node;
      // }
      return head;
    }
};