推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

用深度优先搜索求解二叉树所有路径的Java实现

资料介绍

用深度优先搜索求解二叉树所有路径的Java实现 问题定义 给定一棵二叉树,要求返回所有从根节点到叶子节点的路径(用字符串表示,箭头连接节点值)。 例如树 1 -> 左2 右3,所有路径为 ["1->2", "1->3"]。 算法思路 求所有根到叶路径用深度优先搜索递归实现。沿路径累积节点值字符串,到达叶子时记录完整路径。需要维护"当前路径"并在递归返回后回溯。 递归方法 dfs(node, path, result): 将当前节点值拼接到路径。 若 node 是叶子,记录当前路径。 否则递归处理左右子树,拼接 "->"。 Java 代码实现 javaimport java.util.ArrayList;import java.util.List;public class BinaryTreePaths { static class TreeNode { int val; TreeNode left, right; TreeNode(int val) { this.val = val; } } public List

binaryTreePaths(TreeNode root) { Listresult = new ArrayList<>(); dfs(root, "", result); return result; } private void dfs(TreeNode node, String path, Listresult) { if (node == null) return; String newPath = path + node.val; if (node.left == null && node.right == null) { result.add(newPath); // 到达叶子,记录路径 return; } dfs(node.left, newPath + "->", result)

部分文件列表

文件名 大小
用深度优先搜索求解二叉树所有路径的Java实现.docx 38K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载