一、知识点
1二叉树的遍历理解为按照预先定好的搜索路径访问树里的每个节点,且每个节点仅访问一次
2假设根节点为N,左子树为L,右子树为R,常见的三种遍历方法分别是先(前)序遍历NLR 根左右,中序遍历 LNR 左根右,后序遍历LRN 左右根
3第四种 是按照第一层,第二层,第三层,第四层去遍历。如图,遍历顺序是ABCDEFGHI。层次遍历是需要借助队列的,先进先出
二、习题
1前序序列为ABC,后序序列为CBA,的二叉树共有几棵
思路:前序是根左右,后序是左右根,ABC和CBA相反,要相反有两个方向,1右子树为空,遍历根左和左根;2左子树为空,遍历根右和 右根
答案是4棵,如上图。
2已知一棵二叉树的后序序列为DABEC,中序序列为DEBAC,先序序列是
A. ACBED
B. DECAB
C. DEABC
D. CEDBA
思路:选择题不用花时间算,排除法做。因为后序是左右根,先序根左右,所以后序的最后一个结点c一定是先序的第一个。
答案选D
3若对下图所示的二叉树进行中序线索化,则结点X的左右线索指向的结点分别是
思路:先推出来中序遍历的结点顺序,中序是左根右。再找到X的前后节点,左线索指向X的前一个节点,右线索指向后一个。
中序遍历出来是debXac,所以X的左线索指向b,右线索指向a
推算方法见视频中序遍历二叉树做法_哔哩哔哩_bilibili