首页 > 代码库 > LeetCode --- 21. Merge Two Sorted Lists
LeetCode --- 21. Merge Two Sorted Lists
题目链接:Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
这道题的要求是将两个已经排好序的链表合并成1个有序链表。
这道题的思路比较简单,主要就是考察链表的处理。这里还是像Remove Nth Node From End of List一样先在链表前面加头,这样可以免去对链表头的特殊处理。接下来就是每次取两个链表前面较小的元素,直到有链表到达结尾。最后再将没有到达结尾的链表直接链接到合并的链表的后面,并返回合并后链表头后面的节点指针即可。
时间复杂度:O(n)
空间复杂度:O(1)
1 class Solution
2 {
3 public:
4 ListNode *mergeTwoLists(ListNode *l1, ListNode *l2)
5 {
6 ListNode *h = new ListNode(0), *p = h;
7
8 while(l1 != NULL && l2 != NULL)
9 {
10 if(l1 -> val < l2 -> val)
11 {
12 p -> next = l1;
13 l1 = l1 -> next;
14 }
15 else
16 {
17 p -> next = l2;
18 l2 = l2 -> next;
19 }
20
21 p = p -> next;
22 }
23
24 if(l1 != NULL)
25 p -> next = l1;
26 if(l2 != NULL)
27 p -> next = l2;
28
29 return h -> next;
30 }
31 };
转载请说明出处:LeetCode --- 21. Merge Two Sorted Lists
LeetCode --- 21. Merge Two Sorted Lists
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。