前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法攻关-二叉树笔记

算法攻关-二叉树笔记

原创
作者头像
小诚信驿站
发布2021-03-14 21:51:35
4450
发布2021-03-14 21:51:35
举报

一、题目分类

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

二、题目举例

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

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

- 二叉树的最大深度

- 重建二叉树

- 从上到下打印二叉树

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

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

- 验证二叉搜索树

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

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

三、二叉树的思想

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

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

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

代码精简,DFS是首选。

队列配合,BFS准没错。

持续更新....

四、解题表达式

BFS公式

代码语言:javascript
复制
//固定模版,初始化根节点
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公式

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、题目分类
  • 二、题目举例
  • 三、二叉树的思想
  • 四、解题表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档