关注
/** * 方法1 */ public String getSumBinaryTreeInTraversal(int[] nums1,int[] nums2){ getBinaryTreeValue(nums1,0,nums1.length-1,nums2,0,nums2.length-1); StringBuilder sb = new StringBuilder(); for (int num : nums2) sb.append(num).append(" "); if(sb.length() >= 2) sb.delete(sb.length()-1,sb.length()); return sb.toString(); } /** * 递归方法:基于重构二叉树的改造 */ public int getBinaryTreeValue(int[] pre,int preStart,int preEnd,int[] in,int inStart,int inEnd){ //递归终止条件 if(preStart > preEnd||inStart > inEnd || preEnd-preStart != inEnd-inStart) return 0; int rootIndex = inStart; //在中序遍历结果中寻找当前子树的根节点索引 while(rootIndex <= inEnd && in[rootIndex] != pre[preStart]) rootIndex++; //递归调用 int len = rootIndex - inStart; int left = getBinaryTreeValue(pre,preStart+1,preStart+len,in,inStart,rootIndex-1); int right = getBinaryTreeValue(pre,preStart+len+1,preEnd,in,rootIndex + 1,inEnd); int oldValue = in[rootIndex]; in[rootIndex] = left + right; return oldValue + in[rootIndex]; }
查看原帖
点赞 评论
相关推荐
哞客37422655...:智力题磕磕绊绊都能过,说明技术好,HR面别嘴瓢
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
3357次浏览 69人参与
# 机械人你知道哪些单休企业 #
83145次浏览 415人参与
# 今年春招是金一银二嘛? #
8917次浏览 119人参与
# 参加完秋招的机械人,还参加春招吗? #
103805次浏览 686人参与
# 1月小结:你过的开心吗? #
2079次浏览 53人参与
# 抛开难度不谈,你最想去哪家公司? #
4882次浏览 118人参与
# 为什么有人零实习也能进大厂? #
5524次浏览 132人参与
# AI求职实录 #
4105次浏览 112人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
8831次浏览 207人参与
# 机械人春招想让哪家公司来捞你? #
379373次浏览 3141人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
4010次浏览 141人参与
# 你的第一家实习公司是什么档次? #
4529次浏览 75人参与
# 没关系,至少我的__很曼妙 #
3866次浏览 65人参与
# 赚钱的意义在这一刻具象化 #
4231次浏览 99人参与
# 你的landing期是如何度过的? #
9078次浏览 176人参与
# 除了Java,最推荐学什么技术? #
6259次浏览 151人参与
# 我发现了面试通关密码 #
1600276次浏览 19679人参与
# 一人一道大厂面试题 #
114190次浏览 1263人参与
# 你觉得什么岗位会被AI替代 #
36941次浏览 256人参与
# 你在职场上见过哪些“水货”同事 #
30845次浏览 168人参与
查看1道真题和解析