Java递归方法获取二叉树所有节点路径
以下是一个使用Java语言编写的递归方法,用于获取给定节点的所有路径:
public static List<String> getAllPaths(TreeNode root) {
List<String> paths = new ArrayList<>();
if (root == null) {
return paths;
}
getAllPathsHelper(root, "", paths);
return paths;
}
private static void getAllPathsHelper(TreeNode node, String path, List<String> paths) {
if (node == null) {
return;
}
if ("".equals(path)) {
path += node.val;
} else {
path += "->" + node.val;
}
if (node.left == null && node.right == null) {
paths.add(path);
return;
}
getAllPathsHelper(node.left, path, paths);
getAllPathsHelper(node.right, path, paths);
}
上述代码中,TreeNode是一个二叉树节点类,包含int类型的val属性和left、right两个TreeNode类型的子节点。
getAllPaths方法接受一个TreeNode类型的参数root,返回一个包含所有路径的字符串列表。如果root为null,则返回一个空列表。
getAllPathsHelper方法是递归的核心方法,它接受一个TreeNode类型的参数node、一个String类型的参数path和一个List
在调用getAllPaths方法时,只需要传入根节点即可获取整个二叉树的所有路径。
原文地址: https://www.cveoy.top/t/topic/nVDL 著作权归作者所有。请勿转载和采集!