语言:Java
算法:递归
数据结构:栈
import java.util.ArrayList;
import java.util.Stack;
public class T23_FindPath {
private ArrayList<ArrayList<Integer>> paths = new ArrayList<>();
private Stack<Integer> path = new Stack();
public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) {
// 递归终止条件
if(root == null) return paths;
path.push(root.val);
target -= root.val;
// 当前路径遍历结束时若节点值之和等于Target,则将该路径加入正确路径队列;
if(target == 0 && root.left == null && root.right == null)
paths.add(new ArrayList<Integer>(path));
FindPath(root.left, target);
FindPath(root.right, target);
// 当前节点判断结束,回溯;
path.pop();
return paths;
}
}
京公网安备 11010502036488号