113. Path Sum II

Source code notebook Author Update time

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

Note: A leaf is a node with no children.

Example:

Given the below binary tree and sum = 22,

      **5**
     **/ \**
    **4   8**
   **/**   / **\**
  **11**  13  **4**
 /  **\**    **/** \
7    **2**  **5**   1

Return:

[
   [5,4,11,2],
   [5,8,4,5]
]
# @lc code=start
using LeetCode

function path_sum_113(node::Union{Nothing,TreeNode}, target::Int)::Vector{Vector{Int}}
    isnothing(node) && return Vector{Vector{Int}}[]
    isnothing(node.left) &&
        isnothing(node.right) &&
        return node.val != target ? Vector{Vector{Int}}[] : [[target]]
    paths = path_sum_113(node.left, target - node.val)
    paths = vcat(paths, path_sum_113(node.right, target - node.val))
    for path in paths
        pushfirst!(path, node.val)
    end
    return paths
end

# @lc code=end
path_sum_113 (generic function with 1 method)

This page was generated using DemoCards.jl and Literate.jl.