合并两个排序的链表
链表
题目
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:
0 <= 链表长度 <= 1000
注意:本题与主站 21 题相同:https://leetcode-cn.com/problems/merge-two-sorted-lists/
Related Topics
递归
链表
👍 352
👎 0
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
}
}
思路
- 遍历两个链表
- 比较大小,小的添加即可
实现
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1==null&& l2==null) return null;
if (l1==null)return l2;
if (l2==null)return l1;
ListNode dummyNode = new ListNode();
ListNode pre = dummyNode;
while (true){
if (l1==null){
pre.next=l2;
break;
}
if (l2==null){
pre.next=l1;
break;
}
if (l1.val>l2.val){
pre.next=l2;
l2=l2.next;
}
else {
pre.next=l1;
l1=l1.next;
}
pre=pre.next;
}
return dummyNode.next;
}
}
结果
解答成功:
执行耗时:0 ms,击败了100.00% 的Java用户
内存消耗:41.8 MB,击败了33.91% 的Java用户