思路

字典序就是先序遍历顺序。
所以按字典序打印就好了,注意递归回溯,list.remove()

import java.util.ArrayList;

public class Solution {
    ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> list=new ArrayList<Integer>();

    public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
        if(root==null){return result;}
        target-=root.val;
        list.add(root.val);
        if(target==0 && root.left==null && root.right==null){
            result.add(new ArrayList<Integer>(list));
        }
        FindPath(root.left,target);
        FindPath(root.right,target);
        list.remove(list.size()-1);//回溯
        return result;
    }
}