一个可以可视化各种数据结构的网站:Data Structure Visualizations
二叉树:每个节点最多2个孩子节点,且左右子节点有序(不能互换顺序)
满二叉树:每个叶子节点之外的节点都是2个孩子节点
完全二叉树:定义是 对一颗具有n个结点的二叉树按层编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。简单说就是:完全二叉树就是满二叉树减去右下角。
平衡二叉树: 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
二叉搜索树(二叉排序树): 定义是 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。简单说就是每一个节点的左边一定大于或小于右边。二叉排序树的中序遍历后的结果是有序的。
顺便写一下中序遍历:
// 中序遍历
public void zxbl(TreeNode root){
if(root == null){