在编程过程中,经常需要遍历二叉树的节点,那么经常看到前序、中序和后序遍历三种方法,经常搞混。前、中、后相对于什么来说的呢?当前节点优先遍历,则为前序遍历;当前节点放在中间遍历,则为中序遍历;当前节点放在最后遍历,则为后序遍历。具体如下:
前序遍历
当前节点,先输出该节点,然后输出他的左孩子,最后输出他的右孩子。
对于上图前序遍历结果为:15->6->4->5->7->50->23->71。
中序遍历
当前结点,先输出它的左孩子,然后输出该结点,最后输出它的右孩子。
对于上图中序遍历结果为:4->5->6->7->15->23->50->71。
后序遍历
当前结点,先输出它的左孩子,然后输出它的右孩子,最后输出该结点。
对于上图后序遍历结果为:5->4->7->6->23->71->50->15。
Summary:前、中、后都是对于当前节点来说,记清楚这点就不会搞混了!
推荐一款绘制二叉树的nb网站。https://visualgo.net/zh
end
Always do the right thing!