(一)基础知识
如图遍历该树,常见有四种方法:
先根遍历:即先序遍历(Pre-order),按照根左右的顺序沿一定路径经过路径上所有的结点。在二叉树中,先根后左再右。巧记:根左右。
以标准的树节点来看,
假如在标准树节点上变换一下,
先序最终版:
具体代码:
中根遍历:中序遍历是二叉树遍历的一种,中序周游。在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。
以标准的树节点来看中根遍历,
在标准树节点变换一下:
中序遍历最终版:落地法:
具体代码:
后根遍历:后序遍历(LRD)是二叉树的一种,也叫后序周游,可记做左右根。后序遍历有递归算法和非递归算法两种。在二叉树中,先左后右再根,即首先遍历左子树,然后遍历右子树,最后访问根结点。
以标准的树节点来看后根遍历:
在标准树节点变换一下:
后序排序最终结果:剪葡萄法
具体代码:
注意:先中后序遍历中先中后是指根的顺序。
层次遍历:二叉树的层次遍历 ,顾名思义就是指从二叉树的第一层(根节点)开始,从上至下逐层遍历,在同一层中,则按照从左到右的顺序对节点逐个访问。在逐层遍历过程中,按从顶层到底层的次序访问树中元素,在同一层中,从左到右进行访问。