class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(!l1 && !l2) return NULL;
if(l1 && !l2) return l1;
if(!l1 && l2) return l2;
ListNode *p1 = l1;
ListNode *ppre1 = l1;
ListNode *p2 = l2;
ListNode *ppre2 = l2;
ListNode *head = p1->val <= p2->val ? p1 : p2;
while(p1 && p2) {
if(p1->val <= p2->val) {
while(p1 && p1->val <= p2->val) {
ppre1 = p1;
p1 = p1->next;
}
ppre1->next = p2;
}
else if(p1->val > p2->val) {
while(p2 && p2->val <= p1->val) {
ppre2 = p2;
p2 = p2->next;
}
ppre2->next = p1;
}
}
return head;
}
};
leetcode 合并两个有序链表
最新推荐文章于 2024-12-21 22:53:18 发布
本文深入探讨了链表数据结构的合并算法实现,通过具体的代码示例,详细讲解了如何将两个有序链表合并为一个有序链表的过程。文章重点介绍了判断条件、循环逻辑以及节点连接的技巧,为读者提供了理解和掌握链表操作的基础。
514

被折叠的 条评论
为什么被折叠?



