题目描述(简单难度)

257. Binary Tree Paths - 图1

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

思路分析

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

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

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

解法一 DFS

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

  1. public List<String> binaryTreePaths(TreeNode root) {
  2. List<String> result = new ArrayList<>();
  3. if(root == null){
  4. return result;
  5. }
  6. binaryTreePaths(root, "", result);
  7. return result;
  8. }
  9. private void binaryTreePaths(TreeNode root, String temp, List<String> result) {
  10. if (root.left == null && root.right == null) {
  11. temp = temp + root.val;
  12. result.add(temp);
  13. return;
  14. }
  15. if (root.left != null) {
  16. binaryTreePaths(root.left, temp + root.val + "->", result);
  17. }
  18. if (root.right != null) {
  19. binaryTreePaths(root.right, temp + root.val + "->", result);
  20. }
  21. }

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

windliang wechat

添加好友一起进步~

如果觉得有帮助的话,可以点击 这里 给一个 star 哦 ^^

如果想系统的学习数据结构和算法,强烈推荐一个我之前学过的课程,可以点击 这里 查看详情