public static int digui(List<Integer> tree, int n, boolean t){ if(tree.isEmpty()){ return 0; } List<Integer> left = new ArrayList<>(); List<Integer> right = new ArrayList<>(); int root = tree.get(0); int length = tree.size(); for(int i = 1; i < length; i++){ int cur = tree.get(i); if(cur < root){ left.add(cur); }else{ right.add(cur); } } int leftN = digui(left, n, true); int rightN = digui(right, n, false); // int height = Math.max(leftN, rightN) + 1; if(Math.max(leftN, rightN) - Math.min(leftN, rightN) >= n || leftN == -1 || rightN == -1){ return -1; }else{ if(t){ return leftN + 1; }else{ return rightN + 1; } } } 第二题核心代码这样写的,不知道哪里错了,完整代码在我帖子里,有大佬可以看看嘛?
点赞 评论

相关推荐

2024-12-05 15:39
门头沟学院 Java
正在努力学习的鼠鼠:这个博主就是主要做校招互联网招聘的,恰的就是这个流量,你问他他肯定给你列出来100条互联网的好。
点赞 评论 收藏
分享
牛客网
牛客企业服务