一、什么是深度优先遍历 深度优先遍历算法是经典的图论算法。从某个节点v出发开始进行搜索。不断搜索直到该节点所有的边都被遍历完,当节点v所有的边都被遍历完以后,深度优先遍历算法则需要回溯到v以前驱节点来继续搜索这个节点。 注意:深度优先遍历问题一定要按照规则尝试所有的可能才行。 二、二叉树 2.二叉树类型 二叉树类型:空二叉树、满二叉树、完全二叉树、完美二叉树、平衡二叉树。 空二叉树:有零个节点 完美二叉树:每一层节点都是满的二叉树(如1中举例的图) 满二叉树:每一个节点都有零个或者两个子节点 完全二叉树:出最后一层外,每一层节点都是满的,并且最后一层节点全部从左排列 平衡二叉树:每个节点的两个子树的深度相差不超过1. 注:国内对完美二叉树和满二叉树定义相同 3.二叉树相关术语 术语 解释 度 节点的度为节点的子树个数 叶子节点 度为零的节点 分支节点 度不为零的节点 孩子节点 节点下的两个子节点 双亲节点 节点上一层的源节点 兄弟节点 拥有同一双亲节点的节点 根 二叉树的源头节点 深度 二叉树中节点的层的数量 DLR(先序): LDR(中序): LRD(后序): 注意:L代表左子树R代表右子树;D代表根 6.深度优先遍历和广度优先遍历 深度优先遍历:前序、中序和后序都是深度优先遍历 从根节点出发直奔最远节点, 广度优先遍历:首先访问举例根节点最近的节点,按层次递进,以广度优先遍历上图的顺序为:1-2-3-4-5-6-7 三、面试题+励志 企鹅运维面试题: 1.二叉树遍历顺序:看上文 2.用你熟悉的语言说说怎么创建二叉树? python看上文