二叉树的两个常见概念
full binary tree 满二叉树:二叉树除了叶结点外所有节点都有两个子节点。
对于满二叉树而言,叶子的个数等于内部结点(非叶结点)+1,写作 L = l + 1
complete binary tree 完全二叉树:从根往下数,除了最下层外都是全满(都有两个子节点),而最下层所有叶结点都向左边靠拢填满。
构造一颗完全二叉树就是【从上到下,从左往右】的放置节点。
如下图:
- 左侧为满二叉树但不是完全二叉树,要补全的话可以给第二层最左节点下加两个子节点,或删除当前最下层的两个节点【】。
- 右侧是一颗完全二叉树但并不是满二叉树,因为最下层最后一个节点没有兄弟节点,即其父节点只有一个子节点,不满,补满的话再加一个右子节点即可【满二叉树的节点要么没孩子,要有就一定得是俩】。