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; } } } 第二题核心代码这样写的,不知道哪里错了,完整代码在我帖子里,有大佬可以看看嘛?
点赞 评论

相关推荐

如题如果提出了一个薪资,A不成功,会有可能被取消offer吗
爱打瞌睡的柯基:最想去你们公司 但是别家开的高一些,希望能申请高一点 不管结果如何都谢谢你
点赞 评论 收藏
分享
牛客网
牛客企业服务