(刷题笔记)Leetcode 563.二叉树的坡度

谷歌倾斜摄影数据获取以及转换3DTiles介绍 解析谷歌倾斜模型数据,再一键设置无人值守的情况下,快速将谷歌倾斜摄影模型数据转成3DTiles数据,并在Cesium上进行流畅漫游缩放显示,效果优于官方3DTiiles格式数据 阅读详情

题目

给定一个二叉树,计算整个树的坡度。

一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。

整个树的坡度就是其所有节点的坡度之和。

示例:

输入:

     1
   /   \
  2     3
输出:1
解释:
结点 2 的坡度: 0
结点 3 的坡度: 0
结点 1 的坡度: |2-3| = 1
树的坡度 : 0 + 0 + 1 = 1

提示:

任何子树的结点的和不会超过 32 位整数的范围。
坡度的值不会超过 32 位整数的范围。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-tilt

解题思路

最近写了好多二叉树的题目,但是碰到这样的还是不会写,分析了一下觉得应该是后序遍历,但是后序的迭代不会写,递归也分析不来,最后还是得去看答案。
一开始看官方给的答案不是很懂,然后看了评论区的一个答案,那个答案的方式有点类似二叉树的最大深度的解法,
就是维护一个递归函数,可以求每个结点所有子树加本身结点的和,然后在主函数里再用递归对每个结点遍历,并利用前面的递归函数求其左右子树的和,并求坡度。
不过这个方法对结点的遍历次数太多了,效率很低。
然后就是官方写的解法,递归版本的后序遍历,执行用时果然少了很多。不过还是不懂后序遍历怎么用迭代写,我看后面提交记录里有人用迭代解这一道题,但是又用了stack又用了set,
感觉挺复杂的,目前我功力还不够。
总是在找工作的时候才发现自己啥都不会,实在是太难了,现在才开始学习语言和数据结构也不知道来不来的及。

代码(C++)

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:


    int dfs(TreeNode* root,int & tilt){

        if(root==NULL) return 0;
        int left=dfs(root->left,tilt);
        int right=dfs(root->right,tilt);

        tilt+=abs(left-right);

        return left+right+root->val;

    }

    
    int findTilt(TreeNode* root) {
        int tilt=0;
        dfs(root,tilt);
        return tilt;

    }
};
大模型学习路线之多模态模型 ​ (Frankly speaking,博主太懒了)章节一只对CLIP、BLIP、BLIP2、InstructBLIP进行了整理,章节二以CLIP、VisualGLM作为实践案例。​ 实际上多模态模型除了CLIP、BLIP、BLIP2、InstructBLIP,还有LLaVA、miniGPT4,以及国内清华的VisualGLM、阿里的Qwen-VL等。(更多多模态原理可以看文末的参考说明)一、多模态模型 & 理论。 阅读详情

相关推荐

移动端抓包实战指南:从HTTPS解密到QUIC协议与证书绑定破解

HTTPS作为保障网络通信安全的核心协议,其工作原理基于TLS/SSL加密与证书信任链验证。在移动应用开发与测试中,抓包是调试接口、分析性能、排查问题的关键技术手段。然而,随着移动端安全性的提升,传统的代理抓包方法常因证书绑定、HTTP/3/QUIC协议等挑战而失效。这要求开发者掌握分层诊断思维,协同使用代理工具、协议分析工具及底层流量捕获工具。例如,面对证书绑定导致的流量不可见,需借助Wireshark进行协议层分析;针对基于UDP的QUIC协议,则需使用支持该协议的抓包工具或临时禁用特性。本文聚焦移动端

weixin_27722377的博客 298

LeetCode每日一题----863. 二叉树中所有距离为 K 的结点

863. 二叉树中所有距离为 K 的结点 问题描述 给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2 输出:[7,4,1] 解释: 所求结点为与目标结点(值为 5)距离为 2 的结点, 值分别为 7,4,以及 1 注意,输入的 “root” 和

MerryLiuOnly的博客 327

ansys命令流力磁耦合仿真

文章目录前言一、力磁耦合仿真流程二、静力学仿真三、力磁耦合模型构建四、静磁学仿真总结 前言 一、力磁耦合仿真流程 力磁耦合有限元仿真流程中,首先进行静力学仿真,经过前处理模块、分析计算模块和后处理模块提取三维模型单元应力,然后根据力磁耦合方程中,通过matlab将单元应力导入到磁导率与应力的关系式中,得到单元的相对磁导率。最后采用载荷传递耦合方式,进行静磁学模拟仿真,分析计算得到该载荷下试件的磁场分布。,如下图所示为力磁耦合仿真流程图: 二、静力学仿真 下图为中心预制条形缺陷的Q235钢板试..

wsfwsf128的博客 2662

力扣——在二叉树中分配硬币

给定一个有N个结点的二叉树的根结点root,树中的每个结点上都对应有node.val枚硬币,并且总共有N枚硬币。 在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。 返回使每个结点上只有一枚硬币所需的移动次数。 示例 1: 输入:[3,0,0] 输出:2 解释:从树...

weixin_30892987的博客 281

MOSFET高频响应实战:如何用LTspice仿真内部电容效应(附模型文件)

本文深入解析MOSFET高频响应中的内部电容效应,通过LTspice仿真工具详细展示如何提取模型参数并优化高频特性。从栅极相关电容到结电容的物理本质,再到实战案例中的开关损耗分析和频率响应扫描,提供全面的设计优化方法,帮助工程师有效应对高速开关电路中的电容挑战。

weixin_33725722的博客 390

thinkcmf 代码执行 (CVE-2019-7580) 漏洞复现

所有文章,仅供安全研究与学习之用,后果自负! thinkcmf 代码执行 CVE-2019-7580thinkcmf 代码执行 (CVE-2019-7580)0x01 漏洞描述0x02 影响范围0x03 漏洞复现3.1 登录后台3.2 漏洞利用3.2.1webshell3.2 phpinfo3.3 获取系统命令0x04 漏洞修复 thinkcmf 代码执行 (CVE-2019-7580) 复现小心会搞崩环境。 0x01 漏洞描述 ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于Thi

YouthBelief的博客 4264

(LeetCode 863) 二叉树中所有距离为 K 的结点 [DFS + 添加父节点信息]

863. 二叉树中所有距离为 K 的结点 给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 示例 1: 输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2 输出:[7,4,1] 注意,输入的 “r...

STILLxjy 1122

同一台电脑使用模拟ModbusTcp主从通讯的时候,Wireshark抓取不到包

在使用ModBus Slave和Poll模拟主从通讯的时候,发现Wireshark怎么都抓取不到包怎么排查和解决?

HUJIANGMING的博客 705

leetcode863. 二叉树中所有距离为 K 的结点

题目链接: https://leetcode-cn.com/problems/all-nodes-distance-k-in-binary-tree/ 题目: 给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 示例 1: 输入:root = [3,5,1,6,2,...

机器学习,数据挖掘算法爱好者 993

Oracle恢复学习实战小结

     学习oracle10g 043课程有段时间了,前一两个星期学习了backup/restore相关的内容,刚好公司有要求要为host服务器做一个备用机以防止数据意外丢失。于是,实战开始了。     首先介绍host服务器架构。host以oracle数据库作为底层数据存储,以公司总部开发的Santorin作为应用,主要提供给测试台架数据存储、数据访问、数据导入导出、用户权限管理和数据自动备份

kseawolfk的专栏 1035

空频、空时、空域、时域、频域抗干扰介绍

1、时域抗干扰:对时间域序列进行滤波,滤波系数h(n),采样序列不断进行输入与滤波系数卷积计算,得到响应输出;例如常用的FIR和IIR滤波器。 对于多窄带干扰噪声源和连续波干扰源有较好的处理效果,还可以解决多径问题; 可以通过在接收机前端处理中增加一个嵌入式块实现; 2、频域抗干扰:接收机不容易受到相对于接收机频带以外的强功率干扰; 通常为带通滤波和阻带滤波, 适用于窄带干扰噪声源,连续波干扰源以及较强的频带外干扰噪声源, 3、空域抗干扰:通过多个自适应天线按照特定组合成天线阵列,波束成形,针对

qq_43517907的博客 7305

leetcode-根据二叉树创建字符串

文章目录题目代码 题目 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。 空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 示例 1: 输入: 二叉树: [1,2,3,4] 1 / 2 3 / 4 输出: “1(2(4))(3)” 解释: 原本将是“1(2(4)())(3())”, 在你省略所有...

lingle1的博客 556

SAP RAP 里的 EML 全解:从语言定位到事务语义,再到真实案例的落地方式

摘要:EML(Entity Manipulation Language)是ABAP RAP模型的核心组件,作为ABAP的子集用于操作业务对象(BO)。它通过声明式语法(READ/MODIFY/EXECUTE/COMMIT)统一访问BO的行为与数据,并由RAP运行时自动处理校验、锁定、草稿管理等生命周期。EML将业务语义融入代码,确保与Fiori应用共享同一套校验逻辑,并通过FAILED/REPORTED/MAPPED管道传递错误与消息。其事务控制(IN LOCAL MODE与COMMIT ENTITIES)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 528

LeetCode刷题笔记(JAVA)——563. 二叉树的坡度

解法一 先得到左右两个子节点的总和,再分情况递归 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val;

妙琎的博客 294

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java实现 LeetCode 563 二叉树的坡度(又是一个遍历树)

563. 二叉树的坡度 给定一个二叉树,计算整个树的坡度。 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。 整个树的坡度就是其所有节点的坡度之和。 示例: 输入: 1 / 2 3 输出: 1 解释: 结点的坡度 2 : 0 结点的坡度 3 : 0 结点的坡度 1 : |2-3| = 1 树的坡度 : 0 + 0 + 1 = 1 注...

南 墙 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

leetcode563. 二叉树的坡度,DFS

leetcode563. 二叉树的坡度,DFS

热爱C++和golang的学生 1044

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

二叉树的坡度

二叉树的坡度(力扣:563) 给定一个二叉树,计算整个树的坡度。

卜大爷的博客 2万+

Leetcode563. 二叉树的坡度

Leetcode563. 二叉树的坡度 题目: 给定一个二叉树,计算整个树的坡度。 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。 整个树的坡度就是其所有节点的坡度之和。 示例: 输入: 1 / \ 2 3 输出:1 解释: 结点 2 的坡度: 0 结点 3 的坡度: 0 结点 1 的坡度: |2-3| = 1 树的坡度 : 0 + 0 + 1 = 1 题解: 先定义一个变量sum=0; 对二

会流泪de鱼的博客 201

Leetcode 563. 二叉树的坡度 C++

Leetcode 563. 二叉树的坡度 题目 给定一个二叉树,计算整个树的坡度。 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。 整个树的坡度就是其所有节点的坡度之和。 示例: 输入: 1 / \ 2 3 输出:1 解释: 结点 2 的坡度: 0 结点 3 的坡度: 0 结点 1 的坡度: |2-3| = 1 树的坡度 : 0 + 0 + 1 = 1 提示: 任何子树的结点的和不会超过 32

weixin_43750513的博客 260

刷题小记 (9) LeetCode 563 二叉树的坡度

LeetCode 563 2020.8.14 我的通过代码 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int findTilt(TreeNode r

ahhhhhjaksf的博客 217

【力扣】563. 二叉树的坡度

563. 二叉树的坡度 给定一个二叉树,计算 整个树 的坡度 。 一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。 整个树 的坡度就是其所有节点的坡度之和。 题解 方法一:双递归法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNod

毛毛的博客 555

【LeetCode】第563题——二叉树的坡度(难度:简单)

【LeetCode】第563题——二叉树的坡度(难度:简单)题目描述解题思路代码详解注意点 题目描述 给定一个二叉树,计算 整个树 的坡度 。 一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。 整个树 的坡度就是其所有节点的坡度之和。 示例 1: 输入:root = [1,2,3] 输出:1 解释: 节点 2 的坡度:|0-0| = 0(没有子节点) 节点 3 的坡度:|

Se7en_Dayz的博客 199

LeetCode题练习与总结:二叉树的坡度--563

本文详细介绍了如何计算二叉树的坡度,通过递归方法求解,并分析了算法的时间复杂度和空间复杂度,总结了涉及的编程知识点,为解决此类问题提供了清晰的思路。

一直学习永不止步 823

leetcode 算法题563 (简单144) 二叉树的坡度

leetcode 算法题563 (简单144) 二叉树的坡度 题目介绍 给定一个二叉树, 计算整个树的坡度。 一个树的节点的坡度定义即为, 该节点左子树的结点之和和右子树结点之和的差的绝对值。 空结点的的坡度是0。 整个树的坡度就是其所有节点的坡度之和。 示例 输入: 1 / \ 2 3 输出: 1 解释: 结点的坡度 2 : 0 结...

FYuu95100的博客 155

LeetCode第563题 - 二叉树的坡度

LeetCode第563题 - 二叉树的坡度

流水账 784

二叉树基础之坡度

力扣563-二叉树坡度   笔者是刷热题的同时在自己比较薄弱的tag里从简单题开始刷,昨晚被这道题卡死了 ,记录一下   要点: 要求左右子树的坡度和,而不是左右子树的差值,考虑到多层的情况一定要使用递归的写法(当然递归也有非递归的表示方式 ) ,所以以一个节点为例,返回的不应该是它自身的节点值,而应该是左右子树坡度和它自身的节点值之和,这样上一层才能直接得到它的(左/右)节点之和 class Solution { int all; //用于累加每个节点坡度 public: int

weixin_44196971的博客 226
上一篇: (刷题笔记)Leetcode 653.两数之和 IV - 输入 BST
下一篇: (刷题笔记) 牛客网 腾讯2020校园招聘-后台 1.压缩算法
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值