剑指offer-合并两个排序的链表

题目描述:

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路:

​ 设置个头指针,遍历两链表,谁小那头指针的next就指向谁,最后把剩下的链上

code

public ListNode Merge(ListNode list1,ListNode list2) {
    ListNode head=new ListNode(-1);
    ListNode ans=head;
    ListNode p1,p2;
    p1=list1;
    p2=list2;
    while(p1!=null && p2!=null) {
        if(p1.val<p2.val) {
            head.next=p1;
            p1=p1.next;
            head=head.next;
        } else {
            head.next=p2;
            p2=p2.next;
            head=head.next;
        }
    }
    if(p1==null) {
        head.next=p2;
    } else {
        head.next=p1;
    }
    return ans.next;
}