2021 后端笔试准备 04 (二叉树遍历)

二叉树的遍历有三种,前序遍历,中序遍历,后续遍历

前序遍历:根节点  ——> 左节点 ——> 右节点

中序遍历:左节点  ——> 根节点 ——> 右节点

后序遍历:左节点  ——> 右节点 ——> 根节点

下面是手绘图示意遍历的过程:

前序遍历:根节点  ——> 左节点 ——> 右节点


中序遍历:左节点  ——> 根节点 ——> 右节点


后序遍历:左节点  ——> 右节点 ——> 根节点

递归实现树的遍历

递归和树的遍历是紧密联系的,不懂递归的同学可以看代码配合着手绘图就简单易懂了

前序遍历:根节点  ——> 左节点 ——> 右节点
中序遍历:左节点  ——> 根节点 ——> 右节点


后序遍历:左节点  ——> 右节点 ——> 根节点



二叉树

最后讲一下时间复杂度和空间复杂度

时间复杂度是O(n) 因为他要遍历完所有元素,所以表中如果有n个元素,就需要遍历n次

空间复杂度:平均是O(d),因为递归需要用到方法栈,所以最大栈数和递归树的最大深度一样

但是如果递归树只有左子树或者只有右子树,它就退化成了链表,所以最坏的情况是O(n)


Reference:代码来自Algoexpert,以学习作为主要目的来分享的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容