合并两个有序链表
题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
思路分析
分别遍历两个链表,比较遍历的两个元素大小,将较小的元素插入到新链表中。直至有一链表遍历完成,直接拼接剩下未遍历的链表。代码如下:
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode first=new ListNode(0);
ListNode p=first;
while (l1!=null&&l2!=null){
if(l1.val>l2.val){
p.next=l2;
p=p.next;
l2=l2.next;
}else {
p.next=l1;
p=p.next;
l1=l1.next;
}
}
if (l1!=null) p.next=l1;
if (l2!=null)p.next=l2;
return first.next;
}
534

被折叠的 条评论
为什么被折叠?



