当前位置: 首页 > news >正文

二叉树(纲领篇)

文档阅读

文档阅读

二叉树解题的思维模式分两类:

1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。

2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,这叫「分解问题」的思维模式。

无论使用哪种思维模式,你都需要思考:

如果单独抽出一个二叉树节点,它需要做什么事情?需要在什么时候(前/中/后序位置)做?其他的节点不用你操心,递归函数会帮你在所有节点上执行相同的操作。

题目

104. 二叉树的最大深度

https://leetcode.cn/problems/maximum-depth-of-binary-tree/

class Solution {public int maxDepth(TreeNode root) {if(root == null) return 0;int left = maxDepth(root.left);int right = maxDepth(root.right);return 1 + Math.max(left, right);}
}

144. 二叉树的前序遍历

https://leetcode.cn/problems/binary-tree-preorder-traversal/

class Solution {List<Integer> list = new ArrayList<>();public List<Integer> preorderTraversal(TreeNode root) {dfs(root);return list;}public void dfs(TreeNode root){if(root == null) return;list.add(root.val);dfs(root.left);dfs(root.right);}
}

543. 二叉树的直径

https://leetcode.cn/problems/diameter-of-binary-tree/

class Solution {int res = 0;public int diameterOfBinaryTree(TreeNode root) {dfs(root);return res;}public int dfs(TreeNode root){if(root == null) return 0;int left = dfs(root.left);int right = dfs(root.right);res = Math.max(res, left + right);return 1 + Math.max(left, right);}
}
http://www.lryc.cn/news/65927.html

相关文章:

  • day41—选择题
  • Vue3 watch 监听对象数组中对象的特定属性
  • 请求策略库alova小记
  • [C++]string的使用
  • Kali Linux 操作系统安装详细步骤——基于 VMware 虚拟机
  • R语言APSIM模型应用及批量模拟实践技术
  • 破解马赛克有多「容易」?
  • 【.NET基础加强第八课--委托】
  • jetcache:阿里这款多级缓存框架一定要掌握
  • 干货 | 如何做一个简单的访谈研究?
  • 4年外包出来,5次面试全挂....
  • 基于遗传算法优化的核极限学习机(KELM)分类算法-附代码
  • 评判需求优先级5大规则和方法(纯干货):
  • c++ 11标准模板(STL) std::vector (七)
  • Contest3137 - 2022-2023-2 ACM集训队每月程序设计竞赛(1)五月月赛
  • 如何使用 YOLOv8 神经网络检测图像中的物体
  • Python每日一练:小艺读书醉酒的狱卒非降序数组(详解快排)
  • 手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能
  • AUTOSAR - ComM - 学习一 :基础知识+配置
  • 手把手教你搭建ROS阿克曼转向小车之(增量式PID代码实现)
  • C语言函数大全-- t 开头的函数
  • 安卓系统APP稳定性测试分析的研究报告
  • 【Java基础】集合
  • 【Android入门到项目实战-- 9.1】—— 传感器的使用教程
  • yolov8 浅记
  • 前端009_类别模块_修改功能
  • 2022级吉林大学面向对象第一次上机测试
  • 计算机体系结构总结:内存一致性模型 Memory consistency Model
  • 高速列车运行控制系统(CTCS)介绍
  • C#“System.Threading.ThreadStateException”类型的未经处理的异常