1. 题目
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
2. 示例
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
3. 提示
- 两个链表的节点数目范围是
[0, 50]
-100 <= Node.val <= 100
l1
和l2
均按 非递减顺序 排列
4. 题解
本题也是一个简单的链表操作,仅涉及链表的遍历。
针对两个链表,同时遍历,如果长度不一致,则有个链表先遍历到空,结束遍历。
将未遍历到空的加入链表。
5. Code
1 ublic ListNode mergeTwoLists(ListNode l1, ListNode l2) { 2 /** 3 * @Method: mergeTwoLists 4 * @Author: haifwu 5 * @Version: 1.0 6 * @Date: 01/06/2021 21:07 7 * @param l1 8 * @param l2 9 * @Return: utils.ListNode 10 * @Description: 简单的链表应用 11 */ 12 ListNode temp = new ListNode(0); 13 ListNode ans = temp; 14 while (l1 != null && l2!= null) { 15 if(l1.val <= l2.val) { 16 ans.next = l1; 17 l1 = l1.next; 18 } else if(l1.val > l2.val) { 19 ans.next = l2; 20 l2 = l2.next; 21 } 22 ans = ans.next; 23 } 24 ans.next = l1 != null ? l1 : l2; 25 return temp.next; 26 }