题目描述(简单难度)

输出从根到叶子节点的所有路径。

思路分析

很明显是一个二叉树遍历的问题,我们可以用递归形式的 DFS ,使用栈形式的 DFS,使用队列形式的 BFS

112 题 差不多,这里就不详细说了。

只给出 DFS 递归的代码了,其他代码的话可以参考 这里

解法一 DFS

result 保存所有解,到达叶子节点的时候就将结果保存起来。

public List<String> binaryTreePaths(TreeNode root) { List<String> result = new ArrayList<>(); if(root == null){ return result; } binaryTreePaths(root, "", result); return result; } private void binaryTreePaths(TreeNode root, String temp, List<String> result) { if (root.left == null && root.right == null) { temp = temp + root.val; result.add(temp); return; } if (root.left != null) { binaryTreePaths(root.left, temp + root.val + "->", result); } if (root.right != null) { binaryTreePaths(root.right, temp + root.val + "->", result); } } 

考察的就是二叉树的遍历,很基础的一道题。

results matching ""

    No results matching ""