Java 为下一次迭代减少列表的长度
我试图将列表的长度减少到遍历时修改的索引。但是,为了节省空间,我试图避免使用另一个列表。是否可以:Java 为下一次迭代减少列表的长度,java,list,Java,List,我试图将列表的长度减少到遍历时修改的索引。但是,为了节省空间,我试图避免使用另一个列表。是否可以: 进行此更改。 覆盖最终函数列表。长度 公共ListNode合并列表(ListNode[]列表){ 整数金额=0; 而(金额!=1){ 金额=0; 如果(列表长度%2==0){ for(int i=0;i
列表。长度
公共ListNode合并列表(ListNode[]列表){ 整数金额=0; 而(金额!=1){ 金额=0; 如果(列表长度%2==0){ for(int i=0;i
public ListNode mergeKLists(ListNode[] lists) {
int amount = 0;
int length = lists.length;
while(amount!= 1){
amount = 0;
if(lists.length%2 == 0){
for (int i=0; i<length; i++){
lists[amount] = merge2lists(lists[i] , lists[i+1]);
amount++;
i++;
}
length = amount;
}
else{.....}
}
公共ListNode合并列表(ListNode[]列表){
整数金额=0;
int length=lists.length;
而(金额!=1){
金额=0;
如果(列表长度%2==0){
对于(int i=0;i我使用另一个保持长度记录的变量解决了这个问题
public ListNode mergeKLists(ListNode[] lists) {
int amount = 0;
int length = lists.length;
while(amount!= 1){
amount = 0;
if(lists.length%2 == 0){
for (int i=0; i<length; i++){
lists[amount] = merge2lists(lists[i] , lists[i+1]);
amount++;
i++;
}
length = amount;
}
else{.....}
}
公共ListNode合并列表(ListNode[]列表){
整数金额=0;
int length=lists.length;
而(金额!=1){
金额=0;
如果(列表长度%2==0){
对于(int i=0;i数组是不可变的,因此您不能更改其长度
lists.length=amount;
您必须使用arraycopythen创建新数组。我不能将此条件用于递归目的!@Pavneet_Singh这是列表而不是数组。在减少长度的同时创建不同的数组将消耗额外的空间复杂性。@Lokesh是的!我我不确定列表是否是不可变的。@Lokesh我相信我看到的,看看ListNode[]列表
数组是不可变的,因此您不能更改它们的长度lists.length=amount;
您必须使用arraycopythen创建新数组。我不能将此条件用于递归目的!@Pavneet_Singh这是列表而不是数组。在减少长度的同时创建不同的数组会增加空间复杂性。@Lokesh是的!并且我不确定列表是否是不可变的。@Lokesh我相信我看到的,看看ListNode[]lists