https://leetcode-cn.com/problems/binary-tree-tilt/

题目

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

一个树的节点的坡度定义即为,该节点左子树的节点之和和右子树节点之和的差的绝对值。如果没有左子树的话,左子树的节点之和为0;没有右子树的话也是一样。空结点的坡度是0

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

思路1

这个算是非常经典的二叉树递归练习题了,直接对问题的定义建模就好。

首先,求左子树的节点之和,那么有:

int sumLeft = dfs(node->left);

右子树同理:

int sumRight = dfs(node->right);

差的绝对值:

ans += abs(sumLeft - sumRight);

最后有:

int ans = 0;int findTilt(TreeNode* root) {dfs(root);return ans;
}int dfs(TreeNode* node) {if (node == nullptr) {return 0;}int sumLeft = dfs(node->left);int sumRight = dfs(node->right);ans += abs(sumLeft - sumRight);return sumLeft + sumRight + node->val;
}

本题就相当于是一个"求二叉树所有节点和"的简单改版。

leetcode 563 二叉树的坡度相关推荐

  1. LeetCode 563. 二叉树的坡度(DFS)

    1. 题目 给定一个二叉树,计算整个树的坡度. 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值.空结点的的坡度是0. 整个树的坡度就是其所有节点的坡度之和. 示例:输入 ...

  2. LeetCode 563二叉树的坡度-简单

    给定一个二叉树,计算 整个树 的坡度 . 一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 .如果没有左子树的话,左子树的节点之和为 0 :没有右子树的话也是一样. ...

  3. leetcode 563. 二叉树的坡度(Java版)

    题目 https://leetcode-cn.com/problems/binary-tree-tilt/ 题解 从问题的描述中,可以清楚地了解到,我们需要在给定树的每个结点处找到其坡度,并将所有的坡 ...

  4. 2022-4-2 Leetcode 563.二叉树的坡度

    和检查二叉树是否平衡的思路完全一样. 一个函数用来检查是否平衡,一个函数用来将这棵树无限细分. class Solution {public:int findTilt(TreeNode* root) ...

  5. LeetCode 391. 完美矩形(扫描线) / 318. 最大单词长度乘积 / 563. 二叉树的坡度

    391. 完美矩形 2021.11.16 每日一题 题目描述 给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形.这 ...

  6. 563. 二叉树的坡度

    题目 我的想法 从根节点开始,求出每个几点的度,然后累加.代码如下: # Definition for a binary tree node. class TreeNode:def __init__( ...

  7. 解题报告-Leecode 563. 二叉树的坡度——Leecode每日一题系列

    今天是坚持每日一题打卡的第二十二天 题目链接:https://leetcode-cn.com/problems/binary-tree-tilt/ 题解汇总:https://zhanglong.blo ...

  8. python计算坡度_?563. 二叉树的坡度(Python)

    题目 难度:★★☆☆☆ 类型:二叉树 给定一个二叉树,计算整个树的坡度. 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值.空结点的的坡度是0. 整个树的坡度就是其所有节 ...

  9. 【leetcode】二叉树与经典问题

    文章目录 笔记 leetcode [114. 二叉树展开为链表](https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list ...

最新文章

  1. 【STM32】ESP8266模块简介
  2. 大话主题敏感PageRank
  3. Day07-函数(2)
  4. 『号外』 排名进入3000,特致感谢!
  5. java 合并流(SequenceInputStream)
  6. 平衡点 / 吊打XXX(洛谷-P1337)
  7. datetime的文本时间处理
  8. 单片机移频防啸叫_基于ARM9的防啸叫音频放大器的设计
  9. Zabbix 如何动态执行监控采集脚本
  10. iSCSI客户端配置
  11. ctfshow 做题 萌新 模块(1)
  12. 计算机网络安全课程心得,学习信息安全专业的心得体会
  13. ng-template、ng-container、ng-content 的用法
  14. jdk8的ConcurrentHashMap实现
  15. 按键精灵连接远程mysql_【按键精灵】按键精灵读取github page 网页,实现脚本远程控制功能...
  16. IMAP和POP有什么区别?
  17. 关于amazon亚马逊SP-API申请注册,amazon亚马逊SPAPI开发人员资料注册,amazon亚马逊Selling Partner API申请注册详细指导
  18. linux 星际争霸,让星际争霸在Linux操作系统下转起来
  19. java内存泄漏怎么检测_JAVA内存泄漏原因和内存泄漏检测工具
  20. Educational Codeforces Round 145 (E. Two Tanks 详细讲解 + 代码注释)

热门文章

  1. matlab在图像处理中的应用论文,MATLAB在数字图像处理中的应用
  2. limit mysql 取最后_更优美的 limit 使用方法 (limit 对 mysql 数据查询的性能影响)
  3. python tkinter输入框_python tkinter-按钮.标签.文本框、输入框
  4. python面向对象编程项目_Python学习之==面向对象编程(一)
  5. 用python进行数据分析——第十二章.高阶pandas
  6. 一维差分(附模板题)
  7. 标注工具——Electron、HTML、CSSjs的学习笔记目录
  8. PyTorch——解决报错“RuntimeError: running_mean should contain *** elements not ***”
  9. PostgreSQL 给数据库添加用户
  10. Java面向对象的程序设计