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; } }