LeetCode 2331. Evaluate Boolean Binary Tree in F#

URL

Evaluate Boolean Binary Tree - LeetCode

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/challenge/202405/evaluate_boolean_binary_tree/main.fsx

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

let rec evaluateTree (root: Tree) : bool =
    match root with
    | Leaf -> failwith "never reach here"
    | Node(v, Leaf, Leaf) -> v = 1
    | Node(_, _, Leaf)
    | Node(_, Leaf, _) -> failwith "never reach here"
    | Node(v, left, right) ->
        if v = 2 then
            (evaluateTree left) || (evaluateTree right)
        else
            (evaluateTree left) && (evaluateTree right)