递归函数中的varialble参数总是在递归堆栈结束后输出相同的值

问题描述

static void getAllpossible(List<Integer> list,List<List<Integer>> finalseq,int index,int currentsub ) {
    if (index==list.size()) {
        System.out.println();
        System.out.println("final"+finalseq);
        return;
    }
    currentsub=finalseq.size()-1;
    System.out.println("sub"+currentsub);
    int curr=list.get(index);
    finalseq.get(currentsub).add(curr);
    System.out.println("sub"+finalseq);
    getAllpossible(list,finalseq,index+1,currentsub);
    System.out.println("after "+finalseq);

    
}

输出
final [[1,2,3,4]]
在[[1、2、3、4]]之后
在[[1、2、3、4]]之后
在[[1、2、3、4]]之后
但应该是
final [[1,4]]
在[[1、2、3、4]]之后
在[[1、2、3]]之后
在[[1,2]]之后
在[[1]]

之后

首次调用函数时,finalseq为[[1]]; 我已经尝试了2天,请帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)