LeetCode 872. Leaf-Similar Trees in F#

URL

https://leetcode.com/problems/leaf-similar-trees/description/?envType=daily-question&envId=2024-01-09

Code

https://github.com/syohex/leetcode/blob/master/problems/0872/main.fsx

type Tree =
    | Leaf
    | Node of int * Tree * Tree

let leafSimilar (root1: Tree) (root2: Tree) : bool =
    let rec collectLeaves node acc =
        match node with
        | Leaf -> acc
        | Node(v, Leaf, Leaf) -> v :: acc
        | Node(v, left, right) ->
            let acc' = collectLeaves left acc
            collectLeaves right acc'

    let v1 = collectLeaves root1 []
    let v2 = collectLeaves root2 []

    v1 = v2