日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 725. 分隔链表

發(fā)布時(shí)間:2024/7/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 725. 分隔链表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 題目

給定一個(gè)頭結(jié)點(diǎn)為 root 的鏈表, 編寫一個(gè)函數(shù)以將鏈表分隔為 k 個(gè)連續(xù)的部分。

每部分的長度應(yīng)該盡可能的相等: 任意兩部分的長度差距不能超過 1,也就是說可能有些部分為 null。

這k個(gè)部分應(yīng)該按照在鏈表中出現(xiàn)的順序進(jìn)行輸出,并且排在前面的部分的長度應(yīng)該大于或等于后面的長度。

返回一個(gè)符合上述規(guī)則的鏈表的列表。

舉例: 1->2->3->4, k = 5 // 5 結(jié)果 [ [1], [2], [3], [4], null ]

示例 1: 輸入: root = [1, 2, 3], k = 5 輸出: [[1],[2],[3],[],[]] 解釋: 輸入輸出各部分都應(yīng)該是鏈表,而不是數(shù)組。 例如, 輸入的結(jié)點(diǎn) root 的 val= 1, root.next.val = 2, \root.next.next.val = 3, 且 root.next.next.next = null。 第一個(gè)輸出 output[0] 是 output[0].val = 1, output[0].next = null。 最后一個(gè)元素 output[4] 為 null, 它代表了最后一個(gè)部分為空鏈表。示例 2: 輸入: root = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], k = 3 輸出: [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]] 解釋: 輸入被分成了幾個(gè)連續(xù)的部分,并且每部分的長度相差不超過1.前面部分的長度大于等于后面部分的長度。提示: root 的長度范圍: [0, 1000]. 輸入的每個(gè)節(jié)點(diǎn)的大小范圍:[0, 999]. k 的取值范圍: [1, 50].

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/split-linked-list-in-parts
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

class Solution { public:vector<ListNode*> splitListToParts(ListNode* root, int k) {ListNode *cur = root, *temp;vector<ListNode*> ans(k, NULL);int len = 0, i = 0;while(cur)//求鏈表長度{len++;cur = cur->next;}int len2 = len/k, len1 = len/k;//前面段長度len1,后面長度len2if(len%k)//不能整除len1 += 1;//前面段長度+1int n1 = len - k * len2, n;//n1段len1長度的int n2 = k - n1;//n2段len2長度的cur = root;while(n1--){ans[i++] = cur;n = len1;while(--n)cur = cur->next;//找到斷開的點(diǎn)temp = cur->next;cur->next = NULL;//斷開cur = temp;}while(n2--){ans[i++] = cur;n = len2;while(--n && cur)//后面的段可能有空的cur = cur->next;if(!cur)break;temp = cur->next;cur->next = NULL;cur = temp;}return ans;} };

總結(jié)

以上是生活随笔為你收集整理的LeetCode 725. 分隔链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。