题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

import java.util.*;
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode mergeKLists(ArrayList<ListNode> lists) {
        if (lists.size() == 0 || lists == null) {
            return null;
        }
        //提前清除空链表
        for (int i = 0; i < lists.size(); i++) {
            if (lists.get(i) == null) {
                lists.remove(i);
                i--;
            }
        }

        ListNode ret = null;
        ListNode retEnd = null;
        ListNode tmp = null;
        int delete = 0;
        while(lists.size() != 0) {
            tmp = lists.get(0);
            delete = 0;
            for (int i = 1; i < lists.size(); i++){
                if (tmp.val > lists.get(i).val) {
                    tmp = lists.get(i);
                    delete = i;
                }
            }
            if (ret == null) {
                ret = tmp;
                retEnd = tmp;
            }else {
                retEnd.next = tmp;
                retEnd = tmp;
            }
            lists.set(delete, lists.get(delete).next);
            if (lists.get(delete) == null) {
                lists.remove(delete);
            }
        }
        if (retEnd != null){
            retEnd.next = null;
        }
        return ret;
    }
}

全部评论

相关推荐

08-21 10:58
延安大学 C++
点赞 评论 收藏
分享
嗨害嗨我来了:你跟他说开迈巴赫呢,一个月好几万,让学弟尝尝一点小小的社会险恶
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务