Leetcode—2385. 感染二叉树需要的总时间【中等】

2024每日刷题(123)

Leetcode—2385. 感染二叉树需要的总时间

在这里插入图片描述

算法思想

参考灵神

在这里插入图片描述

实现代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* fa[100001];
    int start;

    TreeNode* startNode;

    void dfs(TreeNode* root, TreeNode* from) {
        if(root == nullptr) {
            return;
        }
        fa[root->val] = from;
        if(root->val == start) {
            startNode = root;
            return;
        }
        dfs(root->left, root);
        dfs(root->right, root);
    }

    int maxlen(TreeNode* root, TreeNode* from) {
        if(root == nullptr) {
            return -1;
        }
        int res = -1;
        if(root->left != from) {
            res = max(res, maxlen(root->left, root));
        }
        if(root->right != from) {
            res = max(res, maxlen(root->right, root));
        }
        if(fa[root->val] != from) {
            res = max(res, maxlen(fa[root->val], root));
        }
        return res + 1;
    }

    int amountOfTime(TreeNode* root, int start) {
        this->start = start;
        dfs(root, nullptr);
        return maxlen(startNode, startNode);
    }
};

运行结果

在这里插入图片描述
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-05-04 05:52:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-04 05:52:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-04 05:52:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-04 05:52:03       18 阅读

热门阅读

  1. ElasticSearch安装和可视化安装

    2024-05-04 05:52:03       10 阅读
  2. 如何看待AIGC技术?【模板】

    2024-05-04 05:52:03       9 阅读
  3. python和R对比记忆

    2024-05-04 05:52:03       8 阅读
  4. Vue 2 组件创建全指南:一步一步学习

    2024-05-04 05:52:03       12 阅读
  5. NLP自然语言处理和应用场景介绍

    2024-05-04 05:52:03       6 阅读
  6. react 列表渲染 key解析和 vue的key解析的底层逻辑

    2024-05-04 05:52:03       13 阅读
  7. C++11 设计模式6. 建造者模式,也叫做生成器模式

    2024-05-04 05:52:03       10 阅读
  8. Python基础学习之数据结构

    2024-05-04 05:52:03       10 阅读
  9. 指针(1)

    指针(1)

    2024-05-04 05:52:03      8 阅读
  10. Mybatis扩展

    2024-05-04 05:52:03       9 阅读
  11. 彻底理解-进程的 概念、 组成、特征

    2024-05-04 05:52:03       12 阅读