# Why does a complete binary tree of $n$ leaves have $2n-1$ nodes?

A complete binary tree is defined as a tree where each node has either $2$ or $0$ children.

A variety of sources have described the relation between nodes and leaves to be $2n-1$ where $n$ is the number of leaves. I haven't however been able to find a description of how this relation was derived.

-
!Farhad Yusufali: Please see the comments below my answer, and decide whether you should accept a different one. –  Carl Mummert Aug 8 '12 at 12:01

Any complete binary tree can be seen as the structure of a single elimination tournament with $n$ teams corresponding to the leaves. Each non-leaf is a game in which the loser goes home and the winner goes up to the next round. There is one final champion, who wins the root game, and so there must be $(n-1)$ non-leaf nodes since every other team loses exactly once. Hence $n + (n-1) = 2n-1$ nodes altogether.

-
Thank you for the help. –  user26649 Aug 8 '12 at 13:58
Very intuitive example, +1! –  Georgey Dec 15 '13 at 22:21
In general for complete n-ary tree (one in which every node has 0 or n children), if $x$ is the number of internal nodes, the number of leaves in it is $x(n-1)+1$ and thus total number of nodes is $xn+1$ –  Mahesha999 Jan 26 at 20:30

A complete binary tree always has $2^m$ leaves for some $m$. Now how many nodes will it have? Well, it will have $1$ root, and $2$ children of the root, and $4$ total children of those children, and so on, up to and including the $2^m$ leaves. So there will be $$1 + 2 + 4 + 8 + \cdots + 2^m = \sum_{i = 0}^m 2^i$$ total nodes in a complete binary tree with $2^m$ leaves. Now there is a standard formula that $$\sum_{i = 0}^m 2^i = 2^{m+1} - 1.$$ If we start by saying that $n = 2^m$ is the number of leaves then $2^{m+1} -1$ nodes is the same as $2\cdot 2^m - 1 = 2n - 1$ nodes, which is the formula requested in the question.

-
Thank you for the help. –  user26649 Aug 7 '12 at 23:02
It's not true that a complete binary tree has $2^m$ nodes. For instance, consider the case where the root has a left and right child, the left child of the root has no children, and the right child of the root has a left and right child neither of which has any children. This tree is complete by the poster's definition - each node has either 2 children or none - but it has only three leaf nodes. –  Steven Stadnicki Aug 8 '12 at 3:27
Thanks! (Of course you mean leaves rather than nodes.) I didn't actually see that bolded sentence below the question title before, and wrote this on the assumption that "complete" meant, well, complete. Except that when I look at the "binary tree" article on Wikipedia I now see that this term has several meanings in addition to the one the OP may have meant. In any case, my answer was only intended to cover a specific type of tree. I think Ned's answer is quite good for the more general case. –  Carl Mummert Aug 8 '12 at 12:00
Very nicely proved! –  Vikram Sep 25 '14 at 1:36
@CarlMummert (sorry for not putting space there, but StackOverflow mentions works that way I guess) so it doesnt matter which definition for Complete Tree is followed, its always $2n-1$ total number of nodes for $n$ leaves? –  Mahesha999 Jan 27 at 21:58

Well start off with the parent node. If you only have one node, that's one leaf, and $2(1) - 1 = 1$. This equation implies that every time you add another leaf, then the total number of nodes will increase by 2.

Now adding two children means taking away one leaf (the parent used to be a leaf) and adding adding two new leaves, which gives a total of one new leaf. You are adding two nodes from one extra leaf, so it turns out this equation works out.

-

Try deleting a leaf node... you need to delete the edge supporting it, and then merge the two edges adjacent to that edge (thereby deleting a second node) in order to have a complete binary tree again. So the number of nodes and edges are both of the form $2n + k$. The trivial tree has $1$ leaf and no edges and one node... so the number of nodes must always be $2n-1$, and the number of edges must always be $2n-2$.

-

Start out with a list of $n$ leaf nodes: we will consider this as a list of nodes which we have to give parents, to construct a complete binary tree.

Take any two nodes $a,b$ from the list, and give them a common parent $p$. (We must take them in twos, to satisfy the completeness property of the tree.) Now those two nodes have parents, but the new parent node $p$ does not; so we remove $a$ and $b$ from the list and add $p$ in. This reduces the size of the list by 1, no matter how we choose the nodes to give parents to. We may then repeat this, giving a parent to two other nodes (where one of them is possibly the node $p$ which we just inserted).

We will have finished constructing the tree only when there is one node left with no parent: the root node of the tree. Doing this requires $n-1$ stages of creating new parent nodes. Thus, to build the tree from $n$ leaves, we needed to add $n-1$ new nodes.

-

Adding two edges to a leave cancels one leave and adds two new leaves while adding two nodes hence the number of nodes minus twice the number of leaves is an invariant. Since every binary tree can be built by a finite number of such steps and, for the tree with one vertex and no edges, this invariant is $1-2\cdot1=-1$, for every binary tree the number of nodes plus one is twice the number of leaves.

This, or Euler characteristic.

-

this applies for both complete and strictly binary tree

SO for n leaves the number of nodes will be 2*n -1