“二叉树” 面试套路模板

5年刷题面试经历,遇到考题千千万,面试很难恰好遇到做过的题。但解题方法是有限的,将套路梳理清楚,面试时就能快速找到相关模板套入,顺利bug-free。

今天小编梳理树题型考点套路。点赞收藏,面试前看一遍,快速通关。

“二叉树” 面试套路模板_第1张图片

遍历

1.1 递归遍历

树的考题基本都是通过递归回溯来解决,将整个问题拆分为左子树,右子树的子问题来解决,相当借助了树的遍历解决问题。

树的递归遍历分为广度优先搜索和深度优先搜索。

广度优先搜索就是层次遍历。

深度优先搜索是分为前序、中序和后序遍历,前中后序的不同在于头节点是先访问还是中间访问,还是最后访问。

前序访问顺序:头节点,左节点,右节点;中序访问顺序:左节点,头节点,右节点;后序访问顺序:右节点,头节点,左节点。

层次遍历

二叉树层次遍历需要借助队列来保存子节点。

遍历过程想区分不同层,怎么实现?

  • 使用一个queue,但是每个节点多用一个字段记录高度。能区分不同的层次。

  • 二叉树的层次遍历中可以使用两个queue,区分不同层

vector> levelOrder(TreeNode *root) {
   v

你可能感兴趣的:(leetcode,数据结构,算法,面试)