C语言 | Leetcode C语言题解之第21题合并两个有序链表
题目:
题解:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) { //如果List1和list2中有一个为空就直接返回另一个链表 if(list1 == NULL) { return list2; } if(list2 == NULL) { return list1; } //定义l1,l2指针分别指向list1和list2的头节点 ListNode* l1, *l2; ListNode* newhead, *newtail; //给新链表的开辟一个哨兵位 newhead = newtail = (ListNode*)malloc(sizeof(ListNode)); l1 = list1,l2 = list2; while(l1 && l2) { if(l1->val val) { newtail->next = l1; newtail = newtail->next; l1 = l1->next; } else { newtail->next = l2; newtail = newtail->next; l2 = l2->next; } } if(l1) { newtail->next = l1; } if(l2) { newtail->next = l2; } //新链表的第一个节点是头节点为无效数据,因此返回头节点的next return newhead->next; }
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!