二叉树深度优先遍历

简介: 二叉树深度优先遍历

在二叉树的深度优先遍历中分为前序遍历、中序遍历和后序遍历,其中根据前序遍历和中序遍历或后序遍历和中序遍历可以推算出完整的二叉树。


三种遍历方式为:

前序遍历:根节点->左子树->右子树

中序遍历:左子树->根节点->右子树

后序遍历:左子树->右子树->根节点


由上述三种遍历方式可知中序遍历最为重要,因为中序遍历可以确定哪些节点在根节点的左侧,哪些节点在根节点的右侧。


首先根据前序或后序遍历找到根节点,然后根据中序遍历将其他节点分配到根节点两侧,以此方式使用递归的方式可以推算出完整的二叉树。


例题:

已知某二叉树的先序遍历序列为ABCDEF、中序遍历序列为BADCFE,则可以确定();


此处不管要考什么问题,肯定都要推出正确的二叉树才行,根据上述解析,在先序序列中可知A为根节点,根据中序序列可知B在A的左子树上,DCFE在A的右子树上。将DCFE拿出与ABCDEF对比可知C为DCFE中的根节点,即C为A的右子节点,同时可知D在C的左子树上,FE在C的右子树上。重复上述推理,最后得出改二叉树为:

20201013165153371.png

该题选项为

A.是单支树(即非叶子节点都只有一个孩子)

B.高度为4(即节点分布在4层上)

C.根节点的左子树为空

D.根节点的右子树为空


综上所述选B


相关文章
|
6月前
|
Python
二叉树前中后序遍历
这段内容是关于二叉树的前序、中序和后序遍历的Python实现。`Solution`类包含三个方法:`preorderTraversal`、`inorderTraversal`和`postorderTraversal`,分别返回二叉树节点值的前序、中序和后序遍历列表。每个方法都是递归的,遍历顺序为:前序(根-左-右)、中序(左-根-右)、后序(左-右-根)。
59 4
|
存储 C++
非递归遍历二叉树
非递归遍历二叉树
52 0
05_二叉树的层次遍历II
05_二叉树的层次遍历II
|
算法
【LeetCode题目详解】(五)144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历、104.二叉树的最大深度、110.平衡二叉树
【LeetCode题目详解】(五)144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历、104.二叉树的最大深度、110.平衡二叉树
53 0
|
6月前
|
存储
详解二叉树的各种非递归遍历
详解二叉树的各种非递归遍历
深度优先遍历与广度优先遍历
深度优先遍历与广度优先遍历
128 0
|
存储 搜索推荐
【二叉树OJ题(二)】前序遍历&&中序遍历&&后序遍历&&另一颗树的子树&&二叉树遍历&&平衡二叉树(下)
【二叉树OJ题(二)】前序遍历&&中序遍历&&后序遍历&&另一颗树的子树&&二叉树遍历&&平衡二叉树(下)
【二叉树OJ题(二)】前序遍历&&中序遍历&&后序遍历&&另一颗树的子树&&二叉树遍历&&平衡二叉树(上)
【二叉树OJ题(二)】前序遍历&&中序遍历&&后序遍历&&另一颗树的子树&&二叉树遍历&&平衡二叉树(上)
二叉树的层次遍历
层次遍历就是即逐层地,从左到右访问所有节点
二叉树的层次遍历