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