LeetCode in Elixir

226. Invert Binary Tree

Easy

Given the root of a binary tree, invert the tree, and return its root.

Example 1:

Input: root = [4,2,7,1,3,6,9]

Output: [4,7,2,9,6,3,1]

Example 2:

Input: root = [2,1,3]

Output: [2,3,1]

Example 3:

Input: root = []

Output: []

Constraints:

Solution

defmodule Solution do
  @spec invert_tree(root :: TreeNode.t | nil) :: TreeNode.t | nil
  def invert_tree(%TreeNode{val: v, left: left, right: right}) do
    %TreeNode{val: v, left: invert_tree(right), right: invert_tree(left)}
  end
  def invert_tree(nil), do: nil
end