首先直接给出二叉树的递归定义
1、要么二叉树没有根节点,是一颗空树
2、要么二叉树由根节点、左子树、右子树组成,且左子树和右子树都是二叉树。
递归定义就是用自身来定义自身
递归函数必须存在两个概念:递归边界和递归式。其中递归式用来将大问题分解为与大问题性质相同的若干个小问题,递归边界则用来停止无休止的递归。
二叉树的递归定义如下;二叉树中任何一个结点的左子树既可以是一颗空树,也可以是一颗拥有左子树和右子树的二叉树;结点的右子树也既可以是一颗空树,也可以是一颗拥有左子树和右子树的二叉树,这样直到递归边界,递归定义结束。
区分二叉树与度为2的树
对树来说,结点的子树是不区分左右顺序的,因此度为2的树只能说明树中每个节点的子节点的个数不超过2.而二叉树虽然也能满足每个结点的子结点的个数不超过2,但它的左右子树是严格区分的,不能随意交换左子树和右子树的位置。
两种特殊的二叉树
满二叉树:每一层的结点个数都达到了当层能达到的最大结点数。
完全二叉树:除了最下面一层外,其余层的结点个数都达到了当层的最大结点数,且最下面一层从左到右连续存在若干结点,而这些结点右边的结点全部不存在。
注意:在层次关系中,自己既是自己的祖先结点,也是自己的子孙结点