[抄题]:

Given a binary tree, return the tilt of the whole tree.

The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subtree node values. Null node has tilt 0.

The tilt of the whole tree is defined as the sum of all nodes' tilt.

Example:

Input: 1/   \2     3
Output: 1
Explanation:
Tilt of node 2 : 0
Tilt of node 3 : 0
Tilt of node 1 : |2-3| = 1
Tilt of binary tree : 0 + 0 + 1 = 1

[暴力解法]:

时间分析:

空间分析:

[奇葩输出条件]:

理解DFS的返回值适用于所有点,ans[0]的返回值只适用于root一个点

[奇葩corner case]:

[思维问题]:

以为要用hashmap把每个点的距离差都存起来,但其实用traverse的参数 就能实现自动记录

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. DFS 的第一步别忘了写退出条件,树中是root == null

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的结果]:

[总结]:

traverse(节点,ans[0]), 可以自动记录每个附带的值

[复杂度]:Time complexity: O(n) Space complexity: O(n)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

DFS先退出:

public int dfs(TreeNode root, int[] ans) {//exitif (root == null) {return 0;}//expandint left = dfs(root.left, ans);int right = dfs(root.right, ans);ans[0] += Math.abs(left - right);//returnreturn left + right + root.val;}

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

[代码风格] :

/*** 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 root) {//corner caseif (root == null) {return 0;}int[] ans = new int[1];dfs(root, ans);//returnreturn ans[0];}public int dfs(TreeNode root, int[] ans) {//exitif (root == null) {return 0;}//expandint left = dfs(root.left, ans);int right = dfs(root.right, ans);ans[0] += Math.abs(left - right);//returnreturn left + right + root.val;}
}

View Code

转载于:https://www.cnblogs.com/immiao0319/p/8592958.html

563. Binary Tree Tilt 子节点差的绝对值之和相关推荐

  1. LeetCode 563. Binary Tree Tilt

    题目: Given a binary tree, return the tilt of the whole tree. The tilt of a tree node is defined as th ...

  2. div获取第一个子节点jquery_【antd】Tree组件子节点不完全勾选获取父节点的值

    注意⚠️:这篇文章适用于后台返回的树结构比较多的情况下,如果数据比较少的情况下,可以参考我的上一篇文章,操作起来比较简单 我们在实际操作tree组件和后台交互的时候一般都是需要将父节点传过去,如图:点 ...

  3. js tree 根据子节点找到所有父节点

    利用深度优先遍历和递归 var acceptUnitNodes = null;//接收单位树形数据function findParentNode(ids){ //ids 是子节点数组var paren ...

  4. Leetcode1685. 有序数组中差绝对值之和[C++题解]:前缀和和差的绝对值之和

    文章目录 题目分析 题目链接 题目分析 分析: 货仓选址同类型题目. 差的绝对值求和,分两半,前面的都小于等于它,后面的都大于等于它. 另外需要注意 前缀和的技巧.O(1)时间求区间之和. 总的时间复 ...

  5. elementui获取所有树节点_element-ui tree获取子节点全选的父节点信息

    公司服务升级确定了新的架构,假如当前部门是二级部门,二级部门下的三级部门全部已选择,那么后端接口要求只需要传二级部门的id,并且操作符传参为 like:如果某一个部门已选择,切父级部门没有选择,那么就 ...

  6. 655. Print Binary Tree 解题报告(树)

    第一部分:搜索.遍历 [例子1]655. Print Binary Tree Example 1: Input:1/2 Output: [["", "1", & ...

  7. 由任意二叉树的前序遍历序列和中序遍历序列求二叉树的思想方法_算法与数据结构基础 - 二叉树(Binary Tree)...

    二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...

  8. LeetCode 1685. 有序数组中差绝对值之和(前缀和)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 非递减 有序整数数组 nums . 请你建立并返回一个整数数组 result,它跟 nums 长度相同,且result[i] 等于 nums[i ...

  9. [算法][面试题]疯狂队列-排列使得序列两两间“差值的绝对值“之和最大

    题目 给定一个数列A,数列中相邻两项的差值的绝对值定义为"疯狂值".任意排序这个数列,使得整个数列的"疯狂值"最大,输出这个最大值. 样例 输入 5 10 25 ...

最新文章

  1. static string java_java:String类、static关键字、Arrays类、 Math类
  2. 玲珑杯 1157 - 造物主的戒律 主席树+离散化
  3. CSS问题的撰写准则
  4. java程序_Java程序员必备----Java命令大全
  5. sklearn自学指南(part14)--Logistic回归
  6. “过午不食”实锤了!协和医院最新研究:每天6:00-15:00进食,其它时间不吃饭!...
  7. java基础—List集合的常规方法操作
  8. 多旋翼飞行器控制的难点
  9. Fiddler抓取HTTPS最全(强)攻略!
  10. Zorin OS:Windows用户无痛转移Linux
  11. opencv 0x00007FF986D04ED9 处(位于 ConsoleApplication2.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception
  12. IT行业技术部门人员架构设计
  13. 用SPSS搞定问卷调查中的决断值
  14. Echarts绘制各种数据可视化图表案例(效果+代码)
  15. 用Postman测试网页接口
  16. 字节跳动校招编程题——特征提取 python
  17. python对象转json字符串,及json字符串的格式化
  18. 网页布局中的 px,em,rem,pt
  19. 艾伟也谈项目管理,敏捷的坏态度
  20. 计算机科学速成课笔记(六):计算机的未来

热门文章

  1. 推理帝帮你分析:你排位为什么上不去
  2. Flink CEP结合案例详解
  3. 服务器主板无屏装系统,1、树莓派安装系统(没有显示屏安装系统方法)
  4. python julia_从Julia角度看机器学习的python经验
  5. 请看一80后女孩的征婚告示,要求真太牛了!
  6. tushare 根据每日指标打分法选股
  7. 伍伦贡计算机科学硕士申请,伍伦贡大学工程学(计算机)硕士研究生申请要求及申请材料要求清单...
  8. 如同黄家驹复活?百度程序猿用AR重现Beyond演唱会
  9. offes给excel增加下拉选项_EXCEL小技巧
  10. vivo X6Plus系统优化