1. 程式人生 > 其它 >java工程部署linux基本操作命令

java工程部署linux基本操作命令

技術標籤:刷題

難度:中等。
重點在連結串列的操作,不要搞混了。

正確解法:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution { public: ListNode* mergeKLists(vector<ListNode*>& lists) { int n = lists.size(); if(n == 0)return NULL; if(n == 1)return lists[0]; int is_empty = 0; vector<ListNode*> temp = lists; int flag = 1; ListNode* list,
*result; int it = 0; while(is_empty < n){ int now_list = 0; int now_num = 100001; for(int i = 0; i < n; i++){ if(temp[i]){ int k = temp[i]->val; if(now_num > k){ now_num =
k; now_list = i; } } else if(it == 0){ is_empty++; } } if(is_empty == n)return NULL; if(flag){ list = temp[now_list]; result = temp[now_list]; flag = 0; } else{ list->next = temp[now_list]; list = list->next; } if(!temp[now_list]->next){ is_empty++; } temp[now_list] = temp[now_list]->next; if(it == 0)it = 1; } return result; } };

在這裡插入圖片描述