二叉树的遍历
二叉树的遍历方式主要有:先序遍历、中序遍历、后序遍历、层次遍历。
深度优先遍历 DFS(Depth-First-Search)
DFS 有三种
先序遍历:遍历顺序规则为【根左右】
中序遍历:遍历顺序规则为【左根右】
后序遍历:遍历顺序规则为【左右根】
递归先序遍历 (用栈的方式实现)
如果我们知道了根节点的 左子树,右子树的 最大深度 l,r,那么该二叉树的最大深度为
max(l,r) + 1
而左子树,右子树的最大深度,同样也可以通过上述的方式计算出来。
递归在访问到空节点时 退出。
如图:
时间复杂度
O(n)
空间复杂度
O(height)
广度优先遍历 BFS(Breadth-First-Search)
实际是用队列的方式实现。
把 每一层 所有节点 都放到队列里。