博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode#递归#979. 在二叉树中分配硬币
阅读量:3952 次
发布时间:2019-05-24

本文共 825 字,大约阅读时间需要 2 分钟。

给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。

在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。

返回使每个结点上只有一枚硬币所需的移动次数。

在这里插入图片描述

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {
public int distributeCoins(TreeNode root) {
op.dfs(root); return op.count; } Op op = new Op(); static class Op{
int count; int dfs(TreeNode root) {
if(root == null) return 0; int leftCount = dfs(root.left); int rightCount = dfs(root.right); count+= Math.abs(leftCount)+ Math.abs(rightCount); // 返回当前节点 return leftCount+rightCount-1+ root.val; } }}

转载地址:http://zkyzi.baihongyu.com/

你可能感兴趣的文章
当白帽黑客遇到了网络诈骗,他是如何套路并反制骗子的?
查看>>
手把手教你36小时搭建无人超市系统 !(附代码)
查看>>
2017新生儿爆款名字出炉!90后的父母们最受欢迎的居然是.....
查看>>
全景图解高铁数据,谁是最有潜力的高铁城市?
查看>>
张小龙现场“约战”跳一跳,发布2018微信全新计划(内附演讲全文)
查看>>
爬取电影天堂的最新电影
查看>>
运维总监不会告诉你这些有趣但鲜为人知的 Linux 命令
查看>>
2017新浪微整形年度大数据报告
查看>>
实战 | 用 Python 选股票,据说可以多挣个20%
查看>>
重磅 | 数据挖掘之父韩家炜:文本语料库的数据挖掘(附视频+PPT下载)
查看>>
白话AI:看懂深度学习真的那么难吗?初中数学,就用10分钟
查看>>
超全的 Linux 机器的渗透测试命令备忘表,共16表128条命令
查看>>
代码传奇 | 明明可以靠颜值 却用代码把人类送上了月球的女人——Margaret Hamilton
查看>>
教你用Java来玩答题(百万英雄/冲刺大会等)
查看>>
用Python做跳一跳外挂太浪费了,这种技能让你目瞪口呆
查看>>
如何在Python中快速进行语料库搜索:近似最近邻算法
查看>>
比特币这么火热,看看这篇比特币初学者指南
查看>>
快收藏! 30 分钟包你学会 AWK
查看>>
各平台的推荐算法,太贴切了!
查看>>
一张图学会Python3
查看>>