LinkedList的用法: list.removeLast()
注意代码中添加路径时需要new LinkedList(list) 否则结果为空
(可能是因为, new LinkedList(path)是深拷贝,
要拷贝一个 path并添加~ 不然 res 里面所有的 path 都指向同一个对象)
class Solution {
LinkedList<List<Integer>> res=new LinkedList<>();
LinkedList<Integer> list=new LinkedList<>();
public List<List<Integer>> pathSum(TreeNode root, int sum) {
function(root,sum);
return res;
}
private void function(TreeNode root,int sum){
if(root==null) return;
list.add(root.val);
sum-=root.val;
if(sum==0 && root.left==null && root.right==null) res.add(new LinkedList(list));
function(root.left,sum);
function(root.right,sum);
list.removeLast();
}
}