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.