【Leetcode -404.左子叶之和 -543.二叉树的直径】

news/2025/2/4 1:02:45/

Leetcode

  • Leetcode -404.左子叶之和
  • Leetcode -543.二叉树的直径

Leetcode -404.左子叶之和

题目:给定二叉树的根节点 root ,返回所有左叶子之和。

示例 1:

在这里插入图片描述

输入: root = [3, 9, 20, null, null, 15, 7]
输出 : 24
解释 : 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

示例 2 :
输入 : root = [1]
输出 : 0

提示 :
节点数在 [1, 1000] 范围内

  • 1000 <= Node.val <= 1000

思路:化为子问题使用变量 ans 记录左子树和右子树的左子叶之和;结束条件为左子树为空、右子树为叶子或者空;

		//判断是否是叶子bool isLeaves(struct TreeNode* root){if (root->left == NULL && root->right == NULL)return true;return false;}int sumOfLeftLeaves(struct TreeNode* root){//ans 记录左子叶之和int ans = 0;//根的左子树不为空,就判断它的左子树是否是叶子,是叶子就返回叶子的 val;否则继续递归其左子树if (root->left)ans += isLeaves(root->left) ? root->left->val : sumOfLeftLeaves(root->left);//递归完左子树递归右子树,寻找右子树的左子叶//根的右子树不为空,且不能是叶子if (root->right && !isLeaves(root->right))ans += sumOfLeftLeaves(root->right);return ans;}

Leetcode -543.二叉树的直径

题目:给你一棵二叉树的根节点,返回该树的 直径 。
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。
两节点之间路径的 长度 由它们之间边数表示。

示例 1:
在这里插入图片描述

输入:root = [1, 2, 3, 4, 5]
输出:3
解释:3 ,取路径[4, 2, 1, 3] 或[5, 2, 1, 3] 的长度。

示例 2:
输入:root = [1, 2]
输出:1

提示:
树中节点数目在范围[1, 104] 内

  • 100 <= Node.val <= 100

思路:题意为求最大左右子树长度之和;化为子问题用变量 max 比较左右子树的高度和与 max 的较大值,记录 max ,最后返回 max;

		int max = 0;int MaxHeight(struct TreeNode* root){if (root == NULL)return 0;//左右子树的高度int leftHeight = MaxHeight(root->left);int rightHeight = MaxHeight(root->right);//max 取 max 与 左右子树高度和的较大值 max = fmax(max, leftHeight + rightHeight);//返回高度return fmax(leftHeight + 1, rightHeight + 1);}int diameterOfBinaryTree(struct TreeNode* root){//max 置0是因为在Leetcode中会多次调用diameterOfBinaryTree函数,所以每次调用都需要置0max = 0;MaxHeight(root);return max;}

http://www.ppmy.cn/news/459738.html

相关文章

STC单片机存储器介绍和使用

STC单片机存储器介绍和使用 🌿STC15F2K60S2系列内部结构框图 🌿STC12C5A60S2系列内部结构框图 📑程序存储器(ROM/Flash) 🔖STC单片机ROM容量大小可以根据其型号和命名规则了解到。 🌿STC

【Express.js】sql-knex 增删改查

Sql增删改查 本节使用knex作为sql框架&#xff0c;以sqlite数据库为例 准备工作 knex是一个运行在各自数据库Driver上的框架&#xff0c;因此需要安装相应的js版数据库Driver&#xff0c;如: PostgreSQL -> pg, mysql/mariadb -> mysql, sqlite -> sqlite3… 安装…

迅睿进阶学习

迅睿表单当前页面提示&#xff0c;不跳转提示页面 <!-- 这是jquery库&#xff0c;也可以下载其他jq的版本js --> <script src"{THEME_PATH}assets/global/plugins/jquery.min.js" type"text/javascript"></script> <!-- 系统关键js(…

基于飞凌嵌入式i.MX8M Plus核心板的智能巡检机器人应用方案

今年1月&#xff0c;工业部、教育部和财政部等十七部门印发了《“机器人”应用行动实施方案》&#xff0c;提出到2025年制造业机器人密度较2020年实现翻番&#xff0c;服务机器人、特种机器人行业应用深度和广度显著提升&#xff0c;机器人促进经济社会高质量发展的能力明显增强…

魅族回应被吉利收购:已签署协议;腾讯下架QQ影音所有版本;PyPI多个软件包因拼写错误包含后门|极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

极路由大部分机型官方固件

由于官方网站下载固件基本很困难&#xff0c;自己整合了下大部分机型固件&#xff0c;部分机型之间固件是相同的通用&#xff0c;请核对md5后自行操作 有网友反映说跳转400网页&#xff0c;说固件有问题&#xff0c;自行百度下就知道400那个网页曾经是极路由的官方客服&#x…

广东联通UNT400G_S905L3_XR819_双内存_线刷固件包

广东联通UNT400G_S905L3_XR819_双内存_线刷固件包 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&#xff0c;运行速度…

Git学习笔记(上篇)

导航小助手 一、Git初识 1.1 场景 1.2 版本控制器 1.3 注意事项 二、Git安装 2.1 Linux-centos 2.2 Linux-ubuntu 三、Git基本操作 3.1 创建Git本地仓库 3.2 配置Git本地仓库 3.3 认识工作区、暂存区、版本库 3.3.1 添加文件—场景一 3.3.2 添加文件—场景二 3.4…