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

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

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

示例 1:

输入:root = [1,2,3]
输出:1
解释:
节点 2 的坡度:|0-0| = 0(没有子节点)
节点 3 的坡度:|0-0| = 0(没有子节点)
节点 1 的坡度:|2-3| = 1(左子树就是左子节点,所以和是 2 ;右子树就是右子节点,所以和是 3 )
坡度总和:0 + 0 + 1 = 1

示例 2:

输入:root = [4,2,9,3,5,null,7]
输出:15
解释:
节点 3 的坡度:|0-0| = 0(没有子节点)
节点 5 的坡度:|0-0| = 0(没有子节点)
节点 7 的坡度:|0-0| = 0(没有子节点)
节点 2 的坡度:|3-5| = 2(左子树就是左子节点,所以和是 3 ;右子树就是右子节点,所以和是 5 )
节点 9 的坡度:|0-7| = 7(没有左子树,所以和是 0 ;右子树正好是右子节点,所以和是 7 )
节点 4 的坡度:|(3+5+2)-(9+7)| = |10-16| = 6(左子树值为 3、5 和 2 ,和是 10 ;右子树值为 9 和 7 ,和是 16 )
坡度总和:0 + 0 + 0 + 2 + 7 + 6 = 15

示例 3:

输入:root = [21,7,14,1,1,2,2,3,3]
输出:9

提示:

树中节点数目的范围在 [0, 10^4] 内
-1000 <= Node.val <= 1000

代码如下:

/*** 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:int ans = 0;int findTilt(TreeNode* root) {pdsum(root);return ans;}
public:int pdsum(TreeNode *root){if (root==nullptr) return 0;int left_sum = pdsum(root->left);int right_sum = pdsum(root->right);ans +=abs(left_sum-right_sum);return left_sum+right_sum+root->val;}
};

LeetCode 563二叉树的坡度-简单相关推荐

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

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

  2. leetcode 563 二叉树的坡度

    https://leetcode-cn.com/problems/binary-tree-tilt/ 题目 给定一个二叉树,计算整个树的坡度 . 一个树的节点的坡度定义即为,该节点左子树的节点之和和右 ...

  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 543二叉树的直径-简单

    给定一棵二叉树,你需要计算它的直径长度.一棵二叉树的直径长度是任意两个结点路径长度中的最大值.这条路径可能穿过也可能不穿过根结点. 示例 : 给定二叉树 1/ \2 3/ \ 4 5 返回 3, 它的 ...

最新文章

  1. Java知识积累——String引用的判断问题
  2. Windows:让Windows XP中的IIS支持多站点的工具
  3. SQL-根据多个条件更新数据
  4. Linux服务器的最大内存和CPU数
  5. 手势识别兼容Android 1.x和2.x的代码【转】
  6. 在vs2005中使用Com连接SAP系统(二)
  7. ElementUI中的el-table中实现动态添加一行、删除一行、清空所有行
  8. Python基础知识一
  9. ios rsa java_一篇搞定RSA加密与SHA签名|与Java完全同步
  10. Windows Server中企业证书服务的安装
  11. 截取utf8中文字符串
  12. 但自去年封测后的cqbgbbs
  13. 被国产机所迫?苹果或将每半年发布一次新iPhone
  14. 论文阅读笔记(五)——FD-MOBILENET
  15. 【转】C# 过滤HTML,脚本,数据库关键字,特殊字符
  16. 跟踪调试易语言静态编译支持库的方法
  17. 【kaggle注册页面没有显示验证码】
  18. MIF/MID数据格式说明
  19. EFK家族---Fluentd日志收集
  20. 基于UDP的文件传输软件 (C#)

热门文章

  1. Android之Activity的4种加载模式
  2. Android之的性能优化方法
  3. 计算机应用怎么拼写,计算机应用本科论文提纲格式范文 计算机应用本科论文提纲如何写...
  4. php post授权编写,php模拟post行为代码总结(POST方式不是绝对安全)
  5. python设置cookie_Python中cookie的设置方法
  6. 神奇的折纸艺术!无限翻转完全停不下来
  7. 颜宁问4对科研夫妻:男科学家怎样平衡事业家庭?
  8. 毕业的那天,程序员师兄竟然让我去做这一行
  9. 用php打印九九乘法表,php如何打印出九九乘法表呢?
  10. PHP做闹钟APP,8款超好用的闹钟APP,专治各种赖床