題目:合并兩個排序好的鏈表
這個題目的關(guān)鍵是增加一個頭指針和邊界條件的判斷。
下面貼出代碼:
/**
* 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) {
? ? ? ? ListNode head=new ListNode(0);
? ? ? ? head.next=l1;
? ? ? ? ListNode p1=l1,q1=l2;
? ? ? ? ListNode p2=head;
? ? ? ? ListNode q2;
? ? ? ? while(p1!=null&&q1!=null){
? ? ? ? ? ? if(p1.val>q1.val){
? ? ? ? ? ? ? ? q2=q1;
? ? ? ? ? ? ? ? q1=q1.next;
? ? ? ? ? ? ? ? p2.next=q2;
? ? ? ? ? ? ? ? q2.next=p1;
? ? ? ? ? ? ? ? p2=q2;
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? p1=p1.next;
? ? ? ? ? ? ? ? p2=p2.next;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if(q1!=null){
? ? ? ? ? ? p2.next=q1;
? ? ? ? }
? ? ? ? return head.next;
? ? }
}