zoukankan      html  css  js  c++  java
  • leetcode 663. Equal Tree Partition

    Given a binary tree with n nodes, your task is to check if it's possible to partition the tree to two trees which have the equal sum of values after removing exactly one edge on the original tree.

    Example 1:

    Input:     
        5
       / 
      10 10
        /  
       2   3
    
    Output: True
    Explanation: 
        5
       / 
      10
          
    Sum: 15
    
       10
      /  
     2    3
    
    Sum: 15
    

    Example 2:

    Input:     
        1
       / 
      2  10
        /  
       2   20
    
    Output: False
    Explanation: You can't split the tree into two trees with equal sum after removing exactly one edge on the tree.
    

    Note:

    1. The range of tree node value is in the range of [-100000, 100000].
    2. 1 <= n <= 10000

    比赛的时候,sb了,求每颗子树的和的时候开了个数组用 i+1 和i+2去做下标,真是2啊。说这些都没用....

    其实,这题很简单,记录每个子树的和,如果是总和的1/2那么就能分成两个相等的子树。

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<int>v;
        int sum;
        int dfs (TreeNode* root) {
            if (root == NULL) return 0;
            int ans = 0;
            ans += dfs(root->left);
            ans +=dfs(root->right);
            ans += root->val;
            v.push_back(ans);
            return ans;
        }
        bool checkEqualTree(TreeNode* root) {
            sum = dfs(root);
            if (v.size() == 1) return false;
            for (int i = 0; i < v.size(); ++i) {
                if (2*v[i] == sum) return true;
            }
            return false;
        }
    };
  • 相关阅读:
    Tips & Tricks:Apache log4j简明教程(二)
    Tips & Tricks:Apache log4j简明教程(一)
    算法导论:字符统计问题
    算法导论:打印回旋数
    ASP.NET AJAX简明教程
    将博客搬至CSDN
    qemu使用copy-on-write(COW)磁盘
    QEMU使用virtio磁盘
    使用HAXM为QEMU for Windows加速
    在WSL中安装和运行Docker CE
  • 原文地址:https://www.cnblogs.com/pk28/p/7399555.html
Copyright © 2011-2022 走看看