深度优先遍历(递归遍历)
觉得用这几个字母表示递归遍历的三种方法不错:
D:访问根结点,L:遍历根结点的左子树,R:遍历根结点的右子树。
先序遍历:DLR
中序遍历:LDR
后序遍历:LRD
这3种遍历都属于递归遍历,或者说深度优先遍历(Depth-First Search,DFS),因为它总
是优先往深处访问。
先序遍历
1 | var preOrder = function (node) { |
中序遍历
1 | var inOrder = function (node) { |
后序遍历
1 | var postOrder = function (node) { |
先序遍历
广度优先遍历是从二叉树的第一层(根结点)开始,自上至下逐层遍历;在同一层中,按照从左到右的顺序对结点逐一访问。
1 | var levelOrderTraversal = function(node) { |
中序遍历
1 | var inOrderUnRecur = function (node) { |
后序遍历
1 | var posOrderUnRecur = function (node) { |