合并两个排序的链表

合并两个排序的链表

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


这道题的思路还是比较重要的

基本思路如下:

这里写图片描述

这里写图片描述

这里写图片描述

新建一个节点,每次都把选下来的小的拉到这条链上。如果有一个链到末尾了,就把另外一个剩下的都接上

这个算法的好处是很简洁

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        ListNode h = new ListNode(-1);
        ListNode cur = h;
        while(list1 != null && list2 !=null){
            if(list1.val<=list2.val){
                cur.next = list1;
                list1 = list1.next;
            }else{
                cur.next = list2;
                list2 = list2.next;
            }
            cur = cur.next;
        }
        if(list1!=null) cur.next = list1;
        if(list2!=null) cur.next = list2;
        return h.next;
    }
}
posted @ 2020-03-02 11:38  别再闹了  阅读(46)  评论(0)    收藏  举报