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

力扣-数据结构-9【算法学习day.80】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.二叉树中的最长交错路径

题目链接:1372. 二叉树中的最长交错路径 - 力扣(LeetCode)

题面:

代码:

class Solution {
    private int longest = 0;    // 记录最长路径
    
    public int longestZigZag(TreeNode root) {
        dfs(root, 0, true);     // 从根节点开始,到达根节点时的长度为0,是否为左子节点不影响结果
        return longest;
    }
    
    /**
     * 递归搜索到达节点node时的交错路径长度length
     * @param node:当前节点
     * @param length:到达该节点的交错路径长度
     * @param isLeft:转移方向,该节点是否为其父节点的左子节点
     */
    private void dfs(TreeNode node, int length, boolean isLeft){
        if(node == null)return;                    // 空节点直接返回
        longest = Math.max(longest, length);     // 更新最长路径
        // 向左递归,如果当前节点为父节点的左子节点,那么向左递归就是开辟一条新的交错路径,到达其左子节点长度为1
        // 否则就是接着之前的交错路径递归,长度+1
        dfs(node.left, isLeft ? 1: length + 1, true);
        // 同理向右递归,如果当前节点为父节点的右子节点,那么向右递归就是开辟一条新的交错路径,到达其右子节点长度为1
        // 否则就是接着之前的交错路径递归,长度+1  
        dfs(node.right, !isLeft ? 1: length + 1, false);
    }
}

 后言

上面是数据结构相关的习题,下一篇文章会将其他相关的习题。 

 


http://www.kler.cn/a/463268.html

相关文章:

  • Leetcode 1254 Number of Closed Islands + Leetcode 1020 Number of Enclaves
  • 树莓派 Pico RP2040 教程点灯 双核编程案例
  • golang 编程规范 - 项目目录结构
  • overleaf写学术论文常用语法+注意事项+审阅修订
  • 【Vue3】h、ref:vue3的两个新特性(重要)-h和ref
  • 朱姆沃尔特隐身战舰:从失败到威慑
  • 30分钟搭建 Typecho 个人博客教程
  • 使用exe4j将jar转成exe、java打包exe
  • vue v-for 数据增加页面不刷新
  • EasyExcel自定义动态下拉框(附加业务对象转换功能)
  • chatglm3如何进行微调
  • 在pytest钩子函数中判断Android和iOS设备(方法二)
  • libmodbus主机通信主要函数分析
  • 2021年国家公考《申论》题(地市级)
  • [工业 4.0] 机器学习如何推动智能制造升级
  • 【从零开始入门unity游戏开发之——C#篇40】C#特性(Attributes)和自定义特性
  • HarmonyOS Next ArkUI ListListItem笔记
  • 【SQL server】教材数据库(5)
  • github
  • 在 Alpine Linux 下通过 Docker 部署 Nginx 服务器
  • 【Pytorch实用教程】深入了解 torchvision.models.resnet18 新旧版本的区别
  • 智能边缘计算×软硬件一体化:开启全场景效能革命新征程(独立开发者作品)
  • 【置顶】测试学习笔记整理
  • SUBSTRING_INDEX()在MySQL中的用法
  • Vue 3.0 中 template 多个根元素警告问题
  • springboot522基于Spring Boot的律师事务所案件管理系统的设计与开发(论文+源码)_kaic