avatar-decorate
获赞
234
粉丝
30
关注
11
看过 TA
1743
沈阳工业大学
2023
后端
IP属地:北京
纸上得来终觉浅
私信
关注
头像
2022-09-09 10:41
已编辑
学科网_Java开发工程师
第三题:求二叉树最小权值和mod1e9+7 二叉树的子节点要么一个没有要么全有;只能过15%;考试结束知道问题原因了-_- 原因是在进行左右值相等的时候是根据子节点的子节点去平衡的,应该是递归这个子树,真是乌鱼子 正确解法应该是 加个memo 可以是hashMap 用来存当前节点的树的权值;思路: - 进行后序遍历判断当前根节点的两个字节的权值和点是否相等: 1. 如果相等那个当前根节点的值为1 返回当前根节点的二叉树的权值;2. 如果不想等那个让小的那边的根结点的值等于就用大的权值 - 小的左右子树的权值之和;之后再用递归递归一遍得到结果;害 考试没想起来 不知道现在这个解法是正确的不 欢迎...
小小锋兵:求树高就可以了,1 3 7 15 31后一个是前一个的2x+1 int high=0; int res=0; int MOD=1000000007; public int getTreeSum (TreeNode tree) { // write code here bfs(tree); for(int i=0;i<high;i++)res=(res*2+1)%MOD; return res; } void bfs(TreeNode root){ if(root==null)return; Deque<TreeNode> dq=new LinkedList<>(); dq.offer(root); while(!dq.isEmpty()){ high++; int size=dq.size(); for(int i=0;i<size;i++){ TreeNode curNode = dq.poll(); if(curNode.left!=null)dq.offer(curNode.left); if(curNode.right!=null)dq.offer(curNode.right); } } }
投递腾讯音乐娱乐集团等公司6个岗位 > 笔试
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务