树的遍历算法
树的遍历算法
1、前序遍历
- 递归形式
1 | // 前序遍历 |
- 非递归形式
1 | void DFS(Tree* pRoot){ |
2、中序遍历
- 递归形式
1 | // 中序遍历 |
- 非递归形式
1 | void DFS(Tree* pRoot){ |
3、后序遍历
- 递归形式
1 | // 后序遍历 |
- 非递归形式
1 | void DFS(Tree* pRoot){ |
4、层次遍历(广度优先)
1 | void BFS(TreeNode* pRoot){ |
应用
1、计算树的层数
- 递归方式
1 | int TreeDepth(TreeNode* pRoot){ |
- 非递归方式(层次遍历应用)
1 | int TreeDepth(TreeNode* pRoot) { |