Leetcode|21. 合并两个有序链表

原题链接:21. 合并两个有序链表
Leetcode|21. 合并两个有序链表
文章图片
solution: 和归并排序的思想差不多,就是从数组换成了链表

/** * Definition for singly-linked list. * 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 *dummy = new ListNode(0); //创建虚拟头节点 ListNode *cur = dummy; //创建cur指针遍历 while(list1 != nullptr && list2 != nullptr){ if(list1->val < list2->val){ cur->next = list1; cur = cur->next; list1 = list1->next; } else{ cur->next = list2; cur = cur->next; list2 = list2->next; } } if(list1 != nullptr){//如果List1没有遍历完,就只想List1 cur->next = list1; } else cur->next = list2; return dummy->next; } };


【Leetcode|21. 合并两个有序链表】

    推荐阅读