Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.63 KB | None | 0 0
  1.     type Tree<'T> =
  2.        | Empty
  3.        | Node of left:Tree<'T> * right:Tree<'T> * value:'T
  4.    
  5.     let isSymmetric (tree : Tree<'T>) =
  6.        let rec loop (left : Tree<'T>, right : Tree<'T>) =
  7.            match (left, right) with
  8.                | (Node (lleft, lright, lval), Node (rleft, rright, rval)) ->
  9.                    if lval = rval
  10.                    then loop (lleft, rright) && loop (rleft, lright)
  11.                    else false
  12.                | (Empty, Empty) -> true
  13.                | _ -> false
  14.        match tree with
  15.            | Node (left, right, _) -> loop (left, right)
  16.            | Empty -> true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement