首页 > 编程语言 >一套模板搞定二叉树算法题--二叉树算法讲解004

一套模板搞定二叉树算法题--二叉树算法讲解004

时间:2024-02-05 21:11:26浏览次数:43  
标签:题目 题意 -- 题解 算法 二叉树 思考 leetcode

1、二叉树经典习题

模拟忘记知识点和技巧时,遇到一个新的二叉树习题,该如何处理思考和写代码解题?

1.1、 leetcode 965

题目和题意:
mark

题解1 成员变量self.ans:
mark

题解2 递归回传:
mark

1.2、 leetcode 257

该题是个经典二叉树题目

题目和题意:
mark

题解:
分析,所有路径,每一个叶子节点都需要到达。到达之后,需要退出回到上一层的叶子节点的情况,就是回溯的做法思路。
mark

1.3、 leetcode 113

题目和题意:
mark

题解:
题目的基本框架和leetcode 257 几乎一致,多加了一个“和”的变量。
mark

回溯的题目:常量和数字不用谢回滚,列表需要写回滚。
mark

1.4、 leetcode 563

回传的写法,一般是自底向上的写法
题目和题意:
mark

mark

题解:
坡度计算必须依赖于左右子树的结果
mark

所以是一个自底向上的过程:
mark

题解:
重点是注意return的回传值。

引用

注意:
不要去思考每一个递归过程怎么走?这样思考就容易乱了;
更好的方式是直接去思考子问题。

mark

这道题目的子问题如下图红框:
mark

题目代码并不多,但重在思考过程。不谋全局者,不足谋一域。抓主干,放细节。主干搞定后,再细节想通。

1.5、 leetcode 687

题目和题意:
mark

mark

题解:
mark
题解注释
mark

1.6、 leetcode 124

题目和题意:
mark

mark

题解:
mark


注:
文中截图源自大佬: 闭着眼睛学数理化 课程内容

标签:题目,题意,--,题解,算法,二叉树,思考,leetcode
From: https://www.cnblogs.com/xlfcjx/p/18008826

相关文章

  • prometheus之node_exporter安装
    一、简介node_exporter用来安装到被监控的主机上,暴露被监控主机的指标数据,服务器端基于http协议调用的端口9100(默认)来获取被监控服务器信息。二、安装部署下载地址https://github.com/prometheus/node_exporter/releases1、解压安装#tar-xvfnode_exporter-*.linux-amd6......
  • 集训——考前复习
    1:最短路链式前向星;点击查看代码inthead[maxn],to[maxn],nxt[maxn],val[maxn],tot;voidadd(intx,inty,intz){ to[++tot]=y; val[tot]=z; nxt[tot]=head[x]; head[x]=tot;}堆优化的dijkstra点击查看代码priority_queue<pair<int,int>>q;voiddijkstra(int......
  • kubelet 组件内存高排查方法
    1、查看服务进程,并跟踪程序系统调用pgrep kubelet#查看资源占用情况top-p 95786strace-cp95786#显示时间戳strace-tt-p95786 2、用pprof性能分析工具排查#安装go环境#启动代理kubectlproxy--port=8001--address=0.0.0.0curl-sK-vhttp://127.0.0.1:8001/......
  • Springboot在编写CRUD时,访问对应数据函数返回null
    1.我遇到了什么问题我在学习springboot,其中在编写CRUD时发现访问数据的函数执行下去返回值是null但是其它部分正常。下面是我的错误代码pojopublicclassBot{@TableId(type=IdType.AUTO)privateIntegerid;privateIntegeruser_id;privateStr......
  • Apptisan #002|AAAny:当一名有着 10w+ 听众的播客主播开始做 App
    名字:AAAny开发者/团队:AAAnyTeam平台:iOS请简要介绍下这款产品AAAny是一个专为AMA(我们称之为AAA)设计的App。多解释一下的话,其实AAA是一种独特的交流形式,所以它应该有专门的展示和互动形式。AAAny就是专门为这种交流形式设计的,比如以Host为中心的展示模式、......
  • "resolutions" 主要用于解决依赖树中可能存在的版本冲突问题
    "resolutions":{"es6-iterator//es5-ext":"0.10.50","d//es5-ext":"0.10.50","es5-ext":"0.10.50"}这个是什么意思?这段配置是出现在package.json文件中的"resolutions"字段,它在使用Yarn2(berry)或......
  • 《程序是怎样跑起来的》第三章,第四章读书感悟
    第三章:一、主要内容1,主要讲了计算机出错的原因,如十进制与二进制转化不精确的原因2,介绍了浮点数,即只用符号、尾数、基数和指数这四部分来表示的小数,更清楚了什么是精度浮点数和单精度浮点数。3,讲述了如何避免计算机出错的两种方法:回避策略及无视这些错误,把小数化成整数计算;在进......
  • 通达信瞄准底部源码副图
    {股票指标}VAR1:=ma(HHV(HIGH,485),17);VAR2:=MA(HHV(HIGH,222),17);VAR3:=MA(HHV(HIGH,96),17);VAR4:=MA(LLV(LOW,485),17);VAR5:=MA(LLV(LOW,222),17);VAR6:=MA(LLV(LOW,96),17);VAR7:=MA((VAR4*0.96+VAR5*0.96+VAR6*0.96+VAR1*0.558+VAR2*0.558+VAR3*0.558)/6,17);V......
  • C#的事件与委托
    本文是学习B站的up主:十月的寒流的学习笔记,推荐直接观看原视频:C#的委托与事件大致是怎么一回事Action和Func是强类型委托,是dotnet为我们提供好的委托Action是没有返回值的Func是有返回值的事件是一种特殊的委托委托有什么用将函数作为函数的参数进行传递声明事件并注册......
  • 通达信金钱魔鬼源码副图
    {股票指标}VAR2:IF(Ema(CLOSE,5)/EMA(EMA(CLOSE,9),16)<=0.85ANDCLOSE/REF(CLOSE,1)>0.905ANDCLOSE/REF(CLOSE,1)<1.05ANDvol/CAPITAL*100<5,50,0);VAR3:=(-100)*(HHV(HIGH,34)-CLOSE)/(HHV(HIGH,34)-LLV(LOW,34))+100;VAR4:=(-100)*(HHV(HIGH,50)-CLOSE)......