## Binary Tree

A binary tree is a tree data structure in which each node has at most two children

A binary tree is a tree data structure in which each node has at most two children

Introduce the 3 types of Binary tree traversal - pre-order traversal, in-order traversal and post-order traversal.

Introduce the concept of BST and the related algorithms

A tree is height-balanced if the heights of the left and right subtree's of each node are within 1.

Introduce Complete Tree and Full Tree

Given a binary search tree, find the kth smallest element in it.

Given a binary tree, find its maximum depth.

Given a binary tree, find its minimum depth.

Calculate the total sum of all root-to-leaf numbers.

Invert a binary tree.

Given a binary tree, return the preorder traversal of its nodes’ values.

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.

Given a binary tree, return all root-to-leaf paths.

Given two binary trees, write a function to check if they are equal or not.

Given a binary tree, check whether it is a mirror of itself.

Given a binary tree, return the inorder traversal of its nodes' values. (Both recursive and iterative solutions)

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.

Given a binary tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.

Given a binary tree, determine if it is a valid binary search tree (BST).

Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST