一、二叉树的深度遍历(前序 中序 后序)
深度遍历即由根向下逐步遍历,这又和以前的数组遍历又本质上的区别。数组的遍历可以利用循环直观的遍历,而树并不是一字展开般简单结构。由此出现了深度遍历和层序遍历的两种方式。
A.首先让我们先草率的建立一颗二叉树备用
B.前序(先序)遍历的意思即遵循 根->左子树->右子树(前,中,后都是对于根而言)
先看看这颗树和深度遍历结果吧。
核心思想即递归,在遇到NULL之前一直进行递归,遍历顺序即递归顺序。
让我们看看代码:
如果依然看不懂的话可以画递归展开图。
C.再加两个计算节点个数的代码吧。
二、经典复试题(关于二叉树的遍历问题)
A.题目:二叉树遍历_牛客题霸_牛客网 (nowcoder.com)
案例展开:
只是将NULL换成了'#'
题目要求即是:由前序遍历展开还原这棵树然后再中序遍历。
总结
二叉树的遍历离不开递归,为了理解二叉树就不能避开递归这个重要途径。