23. Merge k Sorted Lists

来源:互联网 发布:php 策略模式 编辑:程序博客网 时间:2024/06/17 02:17

参考别人写的,所以分类为转载。

public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {        ListNode head= null, cur = null;        while(l1!=null && l2!=null) {            if(l1.val > l2.val) {                if(head == null) {                    cur = l2;                    head = l2;                }else {                    cur.next = l2;                    cur = l2;                }                l2 = l2.next;            }else {                if(head == null) {                    cur = l1;                    head = l1;                }else {                    cur.next = l1;                    cur = l1;                }                l1 = l1.next;            }        }        if(l1 !=null) {            if(cur != null) {                cur.next = l1;            }else {                head = l1;            }        }        if(l2 != null) {            if(cur != null) {                cur.next = l2;            }else {                head = l2;            }        }        return head;     }     public static ListNode mergeKLists(ListNode[] lists) {            if(lists == null || lists.length == 0) {                return null;            }            return mergeKLists(lists, 0, lists.length -1);     }     public static ListNode mergeKLists(ListNode[] lists,int start, int end) {           if(start == end) {               return lists[start];           }else if(start < end) {               int mid = (end - start)/2 + start;               ListNode left = mergeKLists(lists, start,mid);               ListNode right = mergeKLists(lists, mid+1, end);               return mergeTwoLists(left,right);           }else {               return null;           }        }
0 0
原创粉丝点击