public static void traversal(TreeNode root, int sum) {
    	if (null == root) return;
    	if (null == root.left && null == root.right && sum == root.val) {
    		stack.add(root.val);
    		List<Integer> items = new ArrayList<Integer>();
    		for (Integer i : stack) {
    			items.add(i);
    		}
    		res.add(items);
    	} else {
    		stack.add(root.val);
    		traversal(root.left, sum - root.val);
    		traversal(root.right, sum - root.val);
    	}
    	stack.remove(stack.size() - 1);
        return;
    }