LeetCode 101. Symmetric Tree in F#
URL
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