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;
        }
    };
  • 相关阅读:
    js 获取时间差
    linq 两个list合并处理,并分组
    单例模式 双锁
    2018年的读书清单
    感悟
    asp.net使用Microsoft.mshtml提取网页标题等解析网页
    //利用反射快速给Model实体赋值
    C# url接口调用
    多字段动态查询
    对图片的操作
  • 原文地址:https://www.cnblogs.com/pk28/p/7399555.html
Copyright © 2011-2022 走看看