嘤嘤的新平衡树
给定一棵二叉树,二叉树的每个结点只有0或2个孩子。
你需要对每个结点赋值一个正整数,使得每个结点的左右子树权值和相等。
你需要返回所有结点的最小权值和对 109+7 取模的结果。
二叉树结点个数不超过105
输入
{0,0,0}
输出
3
每个节点只有0或2个孩子,那么这棵树就一定是一颗满二叉树
可以是这个样子,但是不应该考虑节点的赋值,而是把它看作是一颗收起来的左右对称的满二叉树,然后需要做的就是求这个满二叉树的节点和
int height(TreeNode* root) { // 获取树的层数 if (!root) return 0; return max(height(root->left), height(root->right)) + 1; } int getTreeSum(TreeNode* tree) { int ans = 1, k = height(tree),mod = 1e9+7; while (k--) ans *= 2, ans %= mod; return ans - 1; }
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/17001767.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步