专栏首页小诚信驿站算法攻关-二叉树笔记
原创

算法攻关-二叉树笔记

一、题目分类

树目前LC上涉及83道题,属于面试的一个高频范围区。我们根据标签分类是可以获取到一部分信息笔试考察范围点的。目前LC上一共是1989道题。概率为182/1989= 9.15%.

二、题目举例

- 求二叉树的公共最小父节点

- 求二叉搜索树的公共最小父节点

- 二叉树的最大深度

- 重建二叉树

- 从上到下打印二叉树

- 从上到下打印二叉树,层级分开

- 从上到下打印二叉树,层级分开,之字形打印

- 验证二叉搜索树

- 序列化二叉树和反序列化二叉树

-...等其他二叉树的相关问题

三、二叉树的思想

二叉树的思想可以归纳为:

二叉树很奇妙,找不到,数组藏。

遍历查看有2种,BFS和DFS。

代码精简,DFS是首选。

队列配合,BFS准没错。

持续更新....

四、解题表达式

BFS公式

//固定模版,初始化根节点
Queue<TreeNode> queue= new LinkedList({add(root)});
//或者初始化根节点
queue.offer(root);
while(!queue.isEmpty()){
 //队列不为空
  TreeNode node = queue.poll();
  if(node.left != null){
    queue.offer(node.left);
  }
  if(node.right != null){
    queue.offer(node.right);
  }
  //处理需要的节点node.val
}

//变形while循环套for循环来控制左右子树的输出,或者加上结果集来判断奇偶(栈也可以)
//可以参考从上到下打印二叉树的题目

DFS公式

public 要处理的返回值 find(TreeNode root){
//递归边界退出条件
if(root == null){
   return null;
 }
要处理的返回值 = find(root.left);
要处理的返回值 = find(root.right);
return 要处理的返回值;
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go的面试笔试基础考察区别点

    #############################分割线###############################################

    小诚信驿站
  • go的代码写作规范

    gopath环境变量指定了你工作区间的位置,默认是home目录下的go目录,eg:/home/go。

    小诚信驿站
  • Gin-Web-Framework官方指南中文(下篇)

    ShouldBind,ShouldBindJSON,ShouldBindXML,ShouldBindQuery,ShouldBindYAML

    小诚信驿站
  • 关于二叉树,你该了解这些!

    说道二叉树,大家对于二叉树其实都很熟悉了,本文呢我也不想教科书式的把二叉树的基础内容在啰嗦一遍,所以一下我讲的都是一些比较重点的内容。

    代码随想录
  • 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)

    不知不觉二叉树已经和我们度过了「三十三天」,代码随想录里已经发了「三十三篇二叉树的文章」,详细讲解了「30+二叉树经典题目」,一直坚持下来的录友们一定会二叉树有...

    代码随想录
  • 数据结构+算法(第12篇)玩平衡二叉树就像跷跷板一样简单!

    在上一篇《无死角“盘”它!二分查找树》中提到了:平衡二叉树的目的就是使得平均查找长度最短。那么这里就引出两个问题:

    用户5224393
  • 数据结构+算法(第11篇)玩平衡二叉树就像跷跷板一样简单!

    在上一篇《无死角“盘”它!二分查找树》中提到了:平衡二叉树的目的就是使得平均查找长度最短。那么这里就引出两个问题:

    用户5224393
  • [leetcode二叉树系列]5 二叉树翻转

    首先我们的目标是将节点的左右值进行交换,说到这里小伙伴可以自行想想可以使用几种方法进行交换,其效率如何,为什么?ok,回到正题,这道题同样是交换,我们交换两个节...

    我是程序员小贱
  • 物体分割--Deep Watershed Transform for Instance Segmentation

    Deep Watershed Transform for Instance Segmentation CVPR2017 https://github.c...

    用户1148525
  • 视频检测分割--Deep Feature Flow for Video Recognition

    Deep Feature Flow for Video Recognition CVPR2017 Code: https://github.com/ms...

    用户1148525

扫码关注云+社区

领取腾讯云代金券