A binary tree is a non-linear data structure with at most two children for each parent node. The node at the top of the tree is the root node, and the nodes that carry other sub-nodes are called parent nodes. Binary trees can be of five types: full, complete, perfect, balanced, and degenerate.