21.Merge Two Sorted Lists(链表)

时间:2021-06-06 16:53:51

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

/**
* 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) {
if(l1==null)
return l2;
if(l2==null)
return l1;
ListNode headNode=new ListNode(0); //注意这里要先初始化
ListNode head=headNode;
head.next=null;
ListNode r=head,p=l1,q=l2;
while(p!=null&&q!=null){
if(p.val<=q.val){
r.next=p; //想想为什么要r.next. r不行是为什么
r=r.next;
p=p.next;
}
else{
r.next=q;
r=r.next;
q=q.next;
}
}
if(p!=null)
r.next=p;
else
r.next=q;
return head.next;
}
}