[Leetcode]合并两个有序链表
Leetcode-合并两个有序链表
题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
解题思路
迭代,将较小值的节点作为下一个节点
实现代码
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode* head=new ListNode();
ListNode* h=head;
ListNode* p=l1;
ListNode* q=l2;
while(p!=NULL&&q!=NULL){ //将较小值的节点作为下一个节点
if(p->val<q->val){
h->next=p;
p=p->next;
}
else{
h->next=q;
q=q->next;
}
h=h->next;
}
if(p==NULL) //q中还有剩余节点
h->next=q;
else if(q==NULL)
h->next=p;
return head->next;
}
};