低多边形生成网站,wordpress设置注册页面,食品包装设计用什么软件,福州企业建站软件文章目录 合并两个有序链表我的思路网上思路 总结 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 图一
示例 1#xff1a;#xff08;如图一#xff09;
输入#xff1a;l1 [1,2,4], l2 [1,3,4]
… 文章目录 合并两个有序链表我的思路网上思路 总结 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 图一
示例 1如图一
输入l1 [1,2,4], l2 [1,3,4]
输出[1,1,2,3,4,4]示例 2
输入l1 [], l2 []
输出[]示例 3
输入l1 [], l2 [0]
输出[0]我的思路 昨天没搞清楚今天先来看看什么是链表 链表是由数据指针构造而成的指针指向下一个节点的地址。如下图 所以在定义 ListNode 结构的时候就需要定义两个属性一个是当前节点的值一个是指向下一个节点地址用来实现指针的功能。 网上思路 递归 我的思路
var mergeTwoLists function (list1, list2) {const dummy new ListNode(0);let current dummy;while (list1 ! null list2 ! null) {if (list1.val list2.val) {current.next list1;list1 list1.next;} else {current.next list2;list2 list2.next;}current current.next;}if (list1 ! null) {current.next list1;} else if (list2 ! null) {current.next list2;}return dummy.next;
}讲解 思路 创建一个虚拟头节点 dummy用于简化链表操作。使用 current 指针指向当前合并链表的末尾。使用 while 循环遍历两个链表比较当前节点的值将较小的节点加入到新链表中。当一个链表遍历完后将另一个链表的剩余部分连接到新链表的末尾。最后返回合并后的链表跳过虚拟头节点。 网上思路
var mergeTwoLists function(l1, l2) {if (l1 null) {return l2;} else if (l2 null) {return l1;} else if (l1.val l2.val) {l1.next mergeTwoLists(l1.next, l2);return l1;} else {l2.next mergeTwoLists(l1, l2.next);return l2;}
};作者力扣官方题解
链接https://leetcode.cn/problems/merge-two-sorted-lists/solutions/226408/he-bing-liang-ge-you-xu-lian-biao-by-leetcode-solu/
来源力扣LeetCode
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。讲解 这是力扣官网的解法 总结
正常的会了但是递归的还没看太懂回头继续学习。