Merge two sorted linked lists and return it asa new list. The new list should be made by splicing together the nodes of thefirst two lists.
翻译:将两个排好序的链表进行排序,要求排好序的链表按照升序排列
分析:由于链表排好序,直接将两个链表遍历,然后插入。有几点需要注意:
1、需要判断两个链表是否都为空
2、头结点必须初始化,所以返回的时候,返回头结点的下一个节点。
这些题目在数据结构中很常见,思想不难,但是不是很好写,具体代码如下:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1,ListNode l2) {
ListNode head=new ListNode(0);
ListNode p=head;
if(l1==null&&l2==null) returnnull;
while(l1!=null&&l2!=null){
if(l1.val<l2.val){
p.next=l1;
l1=l1.next;
}else{
p.next=l2;
l2=l2.next;
}
p=p.next;
}
if(l1==null){
p.next=l2;
}
if(l2==null){
p.next=l1;
}
return head.next;
}
}