题目描述(简单难度)

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

思路分析

很明显是一个二叉树遍历的问题,我们可以用递归形式的 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 ""