LeetCode 21 Merge Two Sorted Lists
2017-08-04 10:56
337 查看
题目:
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.
题目链接
题意:
给两个有序的单链表,要求将这两个链表组成一个新的有序链表,返回新链表的头指针。
给了两个指针 l1 和 l2,分别指向第一个链表和第二个链表,主要思路就是利用循环判断当前 l1 所指向的 val 和 l2 所指向 val 谁小,让node指向小的那个,并循环下去,当有一个链表指针循环结束而另一个还没有,则令node指向剩余链表即可,因为,剩余的都要比现在所有的节点大,所给的节点是有序的。
代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* head = NULL, *node = NULL;
if (!l1) return l2;
if (!l2) return l1;
if (l1->val < l2->val) {
head = l1;
l1 = l1->next;
}
else {
head = l2;
l2 = l2->next;
}
node = head;
while (l1 && l2) {
if (l1->val < l2->val) {
node->next = l1;
l1 = l1->next;
}
else {
node->next = l2;
l2 = l2->next;
}
node = node->next;
}
if (l1) node->next = l1;
else node->next = l2;
return head;
}
};
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.
题目链接
题意:
给两个有序的单链表,要求将这两个链表组成一个新的有序链表,返回新链表的头指针。
给了两个指针 l1 和 l2,分别指向第一个链表和第二个链表,主要思路就是利用循环判断当前 l1 所指向的 val 和 l2 所指向 val 谁小,让node指向小的那个,并循环下去,当有一个链表指针循环结束而另一个还没有,则令node指向剩余链表即可,因为,剩余的都要比现在所有的节点大,所给的节点是有序的。
代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* head = NULL, *node = NULL;
if (!l1) return l2;
if (!l2) return l1;
if (l1->val < l2->val) {
head = l1;
l1 = l1->next;
}
else {
head = l2;
l2 = l2->next;
}
node = head;
while (l1 && l2) {
if (l1->val < l2->val) {
node->next = l1;
l1 = l1->next;
}
else {
node->next = l2;
l2 = l2->next;
}
node = node->next;
}
if (l1) node->next = l1;
else node->next = l2;
return head;
}
};
相关文章推荐
- leetcode(21). Merge Two Sorted Lists
- LeetCode - 21. Merge Two Sorted Lists
- [leetcode] 【排序】 21. Merge Two Sorted Lists
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
- LeetCode 21.Merge Two Sorted Lists
- LeetCode 21 - Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists(C++版)
- [LeetCode]21 Merge Two Sorted Lists
- leetcode 21. Merge Two Sorted Lists(C语言,合并两个排序的链表为一个排序链表)32
- 【LeetCode】21. 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
- LeetCode 21 Merge Two Sorted Lists
- [LeetCode]21. Merge Two Sorted Lists
- Leetcode 21. Merge Two Sorted Lists (Easy) (cpp)
- LeetCode 21. Merge Two Sorted Lists (Easy)
- leetcode 21. Merge Two Sorted Lists
- leetcode[21]:Merge Two Sorted Lists