剑指 Offer 34. 二叉树中和为某一值的路径

package leetcode;

import java.util.ArrayList;
import java.util.List;

public class offer_34 {
    public List<List<Integer>> pathSum(TreeNode root, int target) {
        List<List<Integer>> list=new ArrayList<List<Integer>>();
        backtarck(root, target, new ArrayList<Integer>(), list);
        return list;
    }
    
    public void backtarck(TreeNode root,int target,ArrayList<Integer> li,List<List<Integer>> list) {
        if(root==null) {return;}
        li.add(root.val);
        if(target-root.val==0&&root.left==null&&root.right==null) {
            list.add(new ArrayList<Integer>(li));
        }
        else{
            backtarck(root.left, target-root.val, li, list);
            backtarck(root.right, target-root.val, li, list);
        }
        li.remove(li.size()-1);
    }
    
}

 

posted on 2022-03-16 10:56  一仟零一夜丶  阅读(23)  评论(0)    收藏  举报