Every day a leetcode
题目来源:21. 合并两个有序链表
解法:新建一个链表
首先新建一个空结点 l ,node始终指向当前处理的结点,也是新链表的末尾。
当一个链表全部处理完后,只需要将另一个链表的剩余部分插入到新链表末尾即可。
注意 l 是一个头结点,但是最后要返回 l->next。
代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode* l=(struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* p=list1;
struct ListNode* q=list2;
struct ListNode* node=l;
while(p && q)
{
if(p->val < q->val)
{
node->next=p;
node=p;
p=p->next;
}
else
{
node->next=q;
node=q;
q=q->next;
}
}
if(!q) node->next=p;
if(!p) node->next=q;
return l->next;
}
结果:

该博客介绍了如何用Python实现合并两个已排序的链表。通过创建一个新的链表并比较两个输入链表的节点值,将较小的节点添加到新链表中,直到其中一个链表为空。最后,将非空链表的剩余部分连接到新链表的末尾。这种方法确保了合并后的链表仍然有序。
400

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



