leetcode979】的更多相关文章

Given the root of a binary tree with N nodes, each node in the tree has node.val coins, and there are N coins total. In one move, we may choose two adjacent nodes and move one coin from one node to another.  (The move may be from parent to child, or…
搞不定这种递归计算,可能我的头脑是“线性”的,这种一层一层的,想起来太费劲了,想的头发都没了.以后希望能有AI来写这种程序吧,AI不怕掉头发! class Solution(object): def __init__(self): self.res = 0 def dfs(self,root): if not root: return 0 left = self.dfs(root.left) right = self.dfs(root.right) self.res += abs(left) +…
问题:979. 在二叉树中分配硬币 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币. 在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点.(移动可以是从父结点到子结点,或者从子结点移动到父结点.). 返回使每个结点上只有一枚硬币所需的移动次数. 示例 1: 输入:[3,0,0] 输出:2 解释:从树的根结点开始,我们将一枚硬币移到它的左子结点上,一枚硬币移到它的右子结点上. 示例 2…
问题 给定一个二叉树的root节点,二叉树中每个节点有node.val个coins,一种有N coins. 现在要求移动节点中的coins 使得二叉树最终每个节点的coins value都为1.每次移动,我们只能向相邻接点移动,也就是说coins 只能向父节点或者子节点移动,那么求最终需要移动多少步. Leetcode原题链接: https://leetcode.com/problems/distribute-coins-in-binary-tree/ 分析 如果叶子节点有0个coins,那么我…