网站建设与制作这个行业怎么样呢,个人怎样申请注册公司,wordpress文章添加阅读全文,建设优秀企业网站【力扣】21. 合并两个有序链表
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例1 输入#xff1a;l1 [1,2,4], l2 [1,3,4] 输出#xff1a;[1,1,2,3,4,4] 示例 2 输入#xff1a;l1 [], l2 [] 输出#xff1a;…【力扣】21. 合并两个有序链表
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例1 输入l1 [1,2,4], l2 [1,3,4] 输出[1,1,2,3,4,4] 示例 2 输入l1 [], l2 [] 输出[]
示例 3 输入l1 [], l2 [0] 输出[0]
提示 两个链表的节点数目范围是 [0, 50] -100 Node.val 100 l1 和 l2 均按非递减顺序排列
题解
链表指针
class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) { this.val val; }ListNode(int val, ListNode next) { this.val val;this.next next; }
}class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode dummyNode new ListNode(-1);ListNode prev dummyNode;while (l1 ! null l2 ! null) {if (l1.val l2.val) {prev.next l1;l1 l1.next;}else {prev.next l2;l2 l2.next;}prev prev.next;}// 合并后 l1 和 l2 最多只有一个还未被合并完我们直接将链表末尾指向未合并完的链表即可prev.next (l1 null ? l2 : l1);return dummyNode.next;}
}