21. 合并两个有序链表

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     }

 

 


posted @ 2021-06-01 21:14  抚琴尘世客  阅读(40)  评论(0编辑  收藏  举报