合并两个排序的链表

来源:互联网 发布:mac中显示隐藏文件夹 编辑:程序博客网 时间:2024/06/06 00:35

1来源:合并两个排序的链表
来源:牛客网
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

2、代码:

public class MergeLink {    public static void main(String[] args){        ListNode list1 = new ListNode(1);        ListNode temp1 = list1;        temp1.next = new ListNode(3);        temp1.next.next = new ListNode(5);        System.out.println(list1.val+" "+list1.next.val+" "+list1.next.next.val);        ListNode list2 = new ListNode(2);        ListNode temp2 = list2;        temp2.next = new ListNode(4);        temp2.next.next = new ListNode(6);        System.out.println(list2.val+" "+list2.next.val+" "+list2.next.next.val);        ListNode res = new MergeLink().Merge(list1, list2);        while(res != null){            System.out.println(res.val);            res = res.next;        }    }    public ListNode Merge(ListNode list1,ListNode list2) {        if(list1 == null && list2 == null)            return null;        ListNode head = new ListNode(1);        ListNode process = head;        while(list1 != null && list2 != null){                if(list1.val < list2.val){                    process.next = list1;                    list1 = list1.next;                }else{                    process.next = list2;                    list2 = list2.next;                }            process = process.next;        }        if(list1 != null && list2 == null){//list2到达末尾            process.next = list1;        }        if(list1 == null && list2 != null){//list1到达末尾            process.next =  list2;        }        return head.next;    }}