LeetCode 101. Symmetric Tree in F#

URL

Symmetric Tree - LeetCode

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/0101/main.fsx

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

let isSymmetric (root: Tree) : bool =
    let rec isSymmetric' left right =
        match left, right with
        | Leaf, Leaf -> true
        | Leaf, _
        | _, Leaf -> false
        | Node(v1, left1, right1), Node(v2, left2, right2) ->
            v1 = v2 && isSymmetric' left1 right2 && isSymmetric' right1 left2

    isSymmetric' root root