21. Merge Two Sorted Lists 2019-03-19

题目:合并两个排序好的链表

这个题目的关键是增加一个头指针和边界条件的判断。

下面贴出代码:

/**

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

    }

}

你可能感兴趣的:(21. Merge Two Sorted Lists 2019-03-19)