当前位置: 代码迷 >> 综合 >> leetcode 979. Distribute Coins in Binary Tree
  详细解决方案

leetcode 979. Distribute Coins in Binary Tree

热度:47   发布时间:2024-01-16 17:59:03.0

leetcode 979. Distribute Coins in Binary Tree

题意:给你一个二叉树,对于每个节点的val,每次只能往父亲或者儿子移动1,最后使得所有节点值都为1,求最小的移动次数。

思路:从叶子到跟寻找,对于每个节点,只能剩下一个。多了的值肯定要全给父亲,少的值全问父亲要,统计一下就好了。

class Solution {
public:int distributeCoins(TreeNode* root) {ans = 0;dfs(root);return ans;}int dfs(TreeNode* root){if (root == nullptr)  return 0;int left = dfs(root->left);int right = dfs(root->right);ans += abs(left) + abs(right);return root->val + left + right - 1;}
private:int ans;
};

 

  相关解决方案