嵌套List<List<Integer>>变量插入List变量时

List<List<Integer>> res = new ArrayList<>();

List<Integer> paht = new LinkedList<>();

res.add(new ArrayList(path));需要new ArrayList

在 Java 中,List 是一个接口,它不能直接被实例化。为了能够使用 List,需要用到它的实现类。ArrayList 就是 List 接口最常用的实现类,它是由数组实现的可变长度的列表。

在回溯算法中,res 保存所有符合条件的子集,每当找到一个新的子集时,要将它加入到 res 中。由于 Java 中所有的对象都是引用类型,如果不创建一个新的 ArrayList 对象来保存当前的子集,而是直接将 path 添加到 res 中,那么当 path 后续的元素改变时,之前添加到 res 中的子集也会随之改变。这样会导致最终得到的结果不正确。

因此,为了确保 res 中保存的子集不受 path 的影响,需要在每次添加子集到 res 中时,使用 new 操作符创建一个新的 ArrayList 对象,以保存当前的子集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值