Skip to content

Instantly share code, notes, and snippets.

@IvanVergiliev
Created June 17, 2021 20:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IvanVergiliev/4e1fc5f6105d1b1d6a4bd3186edfc082 to your computer and use it in GitHub Desktop.
Save IvanVergiliev/4e1fc5f6105d1b1d6a4bd3186edfc082 to your computer and use it in GitHub Desktop.
Tree Transformation Algorithm
def transformTree(tree: Tree): Option[Tree] = {
  val transformedLeft = if (canTransform(tree.left)) {
    transform(tree.left)
} else None
  val transformedRight = if (canTransform(tree.right)) {
    transform(tree.right)
} else None
val result = if (transformedLeft.isDefined && transformedRight.isDefined) {
Tree(transformedLeft, transformedRight)
} else None
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment