您的位置:首页 > 其它

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: