## Tree

A tree is a data structure consisting of nodes organised as a hierarchy

A tree is a data structure consisting of nodes organised as a hierarchy

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 complete binary tree, count the number of nodes.

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

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 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

Given n, how many structurally unique BST's (binary search trees) that store values 1...n?

Implement a trie with insert, search, and startsWith methods.

Design a data structure that supports add(word) and search(word).

Given a binary tree, determine if it is a height balanced binary tree.