当前位置: 首页 > 科技观察

算法:合并两个有序链表

时间:2023-03-19 13:13:11 科技观察

本文转载自微信公众号《三分钟学前端》,作者安姐。转载本文请联系三分钟学习前端公众号。将两个升序列表合并为一个新的升序列表并返回。新的链表是由给定的两个链表的所有节点拼接而成的。例子:输入:1->2->4,1->3->4输出:1->1->2->3->4->4解:判断问题的数据结构:单链表判断题的解题思路:从链表的头部开始,l1和l2依次递增,所以l1.val和l2.val中较小的值就是合并链表的最小值,第二个最小值是next.val和大节点val比较的较小值依次递归,直到l1和l2都为null。画图:画图帮助理解和判断边界条件:当递归到任意一个链表为null时,直接指向另一个链表的next即可。不需要继续递归代码实现:functionmergeTwoLists(l1,l2){if(l1===null){returnl2}if(l2===null){returnl1}if(l1.val<=l2.val){l1.next=mergeTwoLists(l1.next,l2)返回l1}else{l2.next=mergeTwoLists(l2.next,l1)返回l2}}来源:https://github.com/sisterAn/JavaScript-Algorithms