###定义
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
树和二叉树的三个主要差别:
1.树的结点个数至少为1,而二叉树的结点个数可以为0;
2.树中结点的最大度数没有限制,而二叉树结点的最大度数为2;
3.树的结点无左、右之分,而二叉树的结点有左、右之分。
完全二叉树和满二叉树
1.满二叉树:一棵深度为k,且有2^k-1个节点成为满二叉树
2.完全二叉树:深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中序号为1至n的节点对应时,称之为完全二叉树
###二叉树的遍历
遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。
1.前序遍历:根节点->左子树->右子树
2.中序遍历:左子树->根节点->右子树
3.后序遍历:左子树->右子树->根节点
output: