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

【LeetCode75】第三十七题 二叉树中的最长交错路径

目录

 

题目:

示例:

分析:

代码:


题目:

示例:

分析:

给我们一棵二叉树,问我们在这棵树里能找到的最长交错路径。最长交错路径就是在二叉树里一左一右一左一右这样走,最长能走的路径长度是多少。

这种二叉树类的题目我们是少不了递归遍历,这次递归我们需要携带参数去递归,就是记录我上一次是左拐还是右拐,然后每次遍历到新的节点我们都需要重新来以此节点作为路径的起始节点来递归。

例如我上一次在二叉树里是右拐,那么接下来我的递归,如果是左走的话,我就把记录路径长度的参数+1然后再次递归,并且还需要多一层递归,那就是路径长度从0开始重新计算的一层递归。

具体可以参考下面的代码。

代码:

class Solution {
public:int res=0;void digui(TreeNode* root,int flag,int temp){if(root==nullptr){res=max(res,temp);return;}//使用flag来记录上一个是往左移还是往右移if(flag==0){    //flag==0则表示上一次是往左移,因此接下来如果是右移的话就把记录的路径长度+1digui(root->right,1,temp+1);digui(root->left,0,0);  //左移则表示从0开始左右交错,路径长度置0.}else{digui(root->left,0,temp+1);digui(root->right,1,0);}}int longestZigZag(TreeNode* root) {if(root==nullptr) return 0;digui(root->left,0,0);digui(root->right,1,0);return res;}
};

http://www.lryc.cn/news/141738.html

相关文章:

  • 百度Apollo学习心得:探索自动驾驶技术的前沿之旅
  • kafka原理之springboot 集成批量消费
  • 【GeoDa实用技巧100例】024:geoda计算全局(局部)莫兰指数Moran‘s I,LISA聚类地图,显著性地图
  • Java进阶(7)——手动实现LinkedList 内部node类的实现 增删改查的实现 toString方法 源码的初步理解
  • CPU总线的理解
  • Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理
  • 记录一下在工作中使用 LayUI bug的问题
  • 手机自动无人直播,实景无人直播真的有用吗?
  • python 面试题--2(15题)
  • kafka复习:(11)auto.offset.reset的默认值
  • 【javaweb】学习日记Day7 - Mysql 数据库 DQL 多表设计
  • 线程的生命周期
  • GAN | 论文精读 Generative Adversarial Nets
  • Yolo系列-yolov2
  • Linux下的系统编程——vim/gcc编辑(二)
  • 2023年国赛 高教社杯数学建模思路 - 案例:最短时间生产计划安排
  • 芯科科技推出专为Amazon Sidewalk优化的全新片上系统和开发工具,加速Sidewalk网络采用
  • Kotlin 丰富的函数特性
  • Node.js怎么搭建HTTP服务器
  • 基于Redisson的联锁(MultiLock)
  • 人脸识别平台批量导入绑定设备的一种方法
  • MySQL—MySQL的NULL值是怎么存放的
  • sql server删除历史数据
  • 目标检测项目中,使用python+xml.etree.ElementTree修改xml格式标注文件中的类别名称
  • 最新域名和子域名信息收集技术
  • C语言基础之——指针(上)
  • 构建 NodeJS 影院预订微服务并使用 docker 部署(04/4)
  • SpringBootWeb案例 Part3
  • C++中using 用法
  • window下jdk安装及更换jdk版本的一些问题。