二叉树的遍历
:
先序遍历:
先访问根节点
再遍历左子树
再遍历右子树
中序遍历:
中序遍历左子树
再访问根节点
中序遍历右子树
后序遍历:
中序遍历左子树
中序遍历右子树
再访问根节点
举个例子:
先序遍历二叉树
先序遍历:ABDCEFG
其意就是:从根节点A开始,先访问A的左子树B再访问B的左子树D,再访问D的右子树,
由于D的左子树为0,则再访问D的右子树,为空,则D访问完毕....
中序遍历:BDCEALFNQM
中序遍历B的左子树,左为空,则中序遍历B的右子树,要想遍历B的右子树,则
需要遍历B的右子树,则需要遍历C的左子树...
后序遍历:BDMFLECA
先访问左,再访问右,再访问根,那就是B,访问右边,先访问C的左子树,D左为空,D右为空,然后再访问MFLECA
再举个栗子:
已知二叉树的前序和中序,求后序
前序:FBACDEGH
中序:ABDCEFGH
我们可以根据前序来判断其原二叉树的根节点,再根据中序来判断他的左子树和右子树
原二叉树如下:
则它的后序为:ADECBHGF