关注
部队那题就是一个层序遍历的过程,每次生成一个TreeNode,判断能不能再分就是判断(value-k)%2=?0,可以再分就new一个left一个right就行;代码如下: package baidu; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class TreeNode{ int val; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); int result = 0; TreeNode root = new TreeNode(n); Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); while(!queue.isEmpty()) { int cnt = queue.size(); for(int i=0;i<cnt;i++) { TreeNode cur = queue.poll(); if(cur.val>k&&(cur.val-k)%2==0) { TreeNode left = new TreeNode((cur.val-k)/2); TreeNode right = new TreeNode((cur.val+k)/2); cur.left = left; cur.right = right; }else { result++; } if(cur.left!=null) queue.add(cur.left); if(cur.right!=null) queue.add(cur.right); } } System.out.println(result); } }
查看原帖
点赞 2
相关推荐


点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
27931次浏览 268人参与
# 入职以后才知道的校招谎言 #
88691次浏览 583人参与
# 风评不好的公司,你会去吗? #
63594次浏览 450人参与
# 华子oc时间线 #
1244616次浏览 6487人参与
# 哪些公司校招卡第一学历 #
70421次浏览 280人参与
# 校招第一份工作你干了多久? #
95314次浏览 423人参与
# 实习如何「偷」产出? #
52979次浏览 1355人参与
# 除了主业以外,你还有哪些其他收入? #
12632次浏览 202人参与
# 不卡学历的大厂有哪些? #
30689次浏览 232人参与
# 机械人,你的第一份感谢信是谁给的 #
30615次浏览 310人参与
# 校招阶段,学历VS技术哪个更重要? #
18256次浏览 188人参与
# 职场新人体验 #
27298次浏览 251人参与
# 研究所笔面经互助 #
78583次浏览 483人参与
# 工作丧失热情的瞬间 #
294153次浏览 2372人参与
# 腾讯音乐求职进展汇总 #
98284次浏览 571人参与
# 你的秋招第一场笔试是哪家 #
148292次浏览 1485人参与
# 社恐入职新公司如何融入团队 #
12067次浏览 63人参与
# 华为开奖那些事 #
4094724次浏览 24608人参与
# 校园里的破防时刻 #
12029次浏览 128人参与
# Offer比较,你最看重什么? #
191891次浏览 1308人参与