A full binary tree (sometimes referred to as a proper binary tree or plane binary tree) is a tree in which every node other than the leaves has two children. In other words, each node has either 0 child or 2 children.
A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.
A perfect binary tree is a binary tree with all leaf nodes at the same depth. All internal nodes have degree 2.
A Binary Heap is a binary tree with following 2 properties: