A binary tree is a finite set of vertices that is either empty or consists of a vertex called the root, together with two binary subtrees that are disjoint from each other and from the root and are called the left and right subtrees.
A full binary tree is a binary tree in which each node either is a leaf or has exactly two nonempty descendants. In a full binary tree of height h:
A complete binary tree is full binary tree in which all leaves have the same depth and all internal nodes have degree 2 (e.g., second example above).
(Note: some earlier texts allow the last level of a "complete" tree to be incomplete! They are defined as binary trees with leaves on at most two adjacent levels l-1 and l and in which the leaves at the bottommost level l lie in the leftmost positions of l.)