🌈前言:在刷题过程中发现超精简的代码。
力扣链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
💫正文
首先这是题目内容,大家看到这个题时肯定会有很多不同的做法比如遍历链表将两个链表合并最后再排序;又或者创建一个新的链表先进行排序小的则放入新的链表中。等等还有好多方法,但是在我做完这个题后发现一个牛人超级简单的代码。
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {if(l1==NULL)return l2;if(l2==NULL)return l1;if(l1->val < l2->val){l1->next = mergeTwoLists(l1->next,l2);return l1;}else{l2->next = mergeTwoLists(l1,l2->next);return l2; }
}
代码运用了c语言的递归,下面我来说一下我对这串代码的理解(如有缺陷还请大佬们指点)
比如我们取两组数值分别为:
l1:1,3
l2:2,4
这是我们进入递归的过程,下面我们来让函数返回:
这个代码比起其他的方法简单了不少,所以分享给大家。
(这代码也是博主从牛人那边抄过来的)
如果大家喜欢的话,一键三连支持一下吧!!!
拜拜!!!