zoukankan      html  css  js  c++  java
  • [leetcode-563-Binary Tree Tilt]

    Given a binary tree, return the tilt of the whole tree.
    The tilt of a tree node is defined as the absolute difference between
    the sum of all left subtree node values and the sum of all right subtree node values. Null node has tilt 0.
    The tilt of the whole tree is defined as the sum of all nodes' tilt.

    Example:
    Input:
    1
    /
    2 3
    Output: 1
    Explanation:
    Tilt of node 2 : 0
    Tilt of node 3 : 0
    Tilt of node 1 : |2-3| = 1
    Tilt of binary tree : 0 + 0 + 1 = 1

    int sumOfTree(TreeNode* root)
    {
        if(root == NULL) return 0;
        if(root -> left == NULL && root  -> right == NULL) return root->val;
        return sumOfTree(root->left) + sumOfTree(root->right) + root->val;
    }
    int getTilt(TreeNode* root)
    {
        if(root == NULL || (root->left == NULL)&&(root->right == NULL)) return 0;
        return abs(sumOfTree(root->left) - sumOfTree(root->right) ) ;
    }
    int findTilt(TreeNode* root)
    {
        if(root == NULL || (root->left == NULL)&&(root->right == NULL)) return 0;
    
        int left = findTilt(root->left);
        int right = findTilt(root->right);
        return left + right + getTilt(root);
    }
  • 相关阅读:
    SpringBoot配置文件数据格式三种写法
    实施工程师
    Linux命令大全
    PDCA原则
    cmd命令下载maven管理需要的依赖jar包
    java集合体系结构总结
    回溯
    红黑树详解
    Java 垃圾回收算法
    MySQL优化:如何避免回表查询?什么是索引覆盖
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6751944.html
Copyright © 2011-2022 走看看