leetcode_middle_88_113. Path Sum II

1321 단어 leetcode
제목:
두 갈래 나무가 뿌리 노드에서 잎 결점까지의 모든 결점의 값을 주어진 수의 모든 경로로 기록합니다.
분석:
샅샅이 뒤지면 된다.
그러나 잎 노드는 귀환처럼 들어가지 않도록 주의해야 한다. 잎 노드는 두 개의 빈자 노드가 있기 때문에 귀환 판단에 들어가면 잘못된 답안이 나올 수 있다.
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    List l = null;
    List> list = null;
    int sum;
    public List> pathSum(TreeNode root, int sum) {
        this.sum = sum;
        list = new ArrayList<>();
        l = new ArrayList<>();
        if(root==null)
            return list;
        helper(root, 0);
        return list;
    }
    
    private void helper(TreeNode root, int t){
        if(root == null){
            if(t == sum)
                list.add(new ArrayList<>(l));
            return;
        }
        t += root.val;
        l.add(root.val);
        if(root.left==null && root.right==null && t==sum){
            list.add(new ArrayList<>(l));
        }else{
            if(root.left != null)
                helper(root.left, t);
            if(root.right!=null)
                helper(root.right, t);
        }
        l.remove(l.size()-1);
    }
}

좋은 웹페이지 즐겨찾기