【LeetCode】21. 合并两个有序链表
题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/description/
题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解决方法
思路:新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中
// *
// * Definition for singly-linked list.
// * struct ListNode {
// * int val;
// * ListNode *next;
// * ListNode(int x) : val(x), next(NULL) {}
// * };
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode *head=new ListNode(0);
ListNode *tail=head;
while(l1 && l2){
if (l1->val<=l2->val){
tail->next=l1;
l1=l1->next;
}
else{
tail->next=l2;
l2=l2->next;
}
tail=tail->next;
}
if (l1) tail->next=l1;
if (l2) tail->next=l2;
return head->next;
}
};
还没有评论,来说两句吧...