关注
/** * 方法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]; }
查看原帖
点赞 评论
相关推荐
12-17 22:17
武汉大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
128020次浏览 2149人参与
# 找不到实习会影响秋招吗 #
1398704次浏览 13625人参与
# 实习没事做是福还是祸? #
843次浏览 14人参与
# 实习简历求拷打 #
20175次浏览 225人参与
# 一人说一个提前实习的好处 #
208次浏览 5人参与
# 哪些公司笔/面试难度大? #
6941次浏览 31人参与
# 携程工作体验 #
18739次浏览 66人参与
# 考研人,我有话说 #
156306次浏览 1209人参与
# 投格力的你,拿到offer了吗? #
154207次浏览 829人参与
# 秋招遇到的奇葩面试题 #
101150次浏览 416人参与
# 作业帮求职进展汇总 #
84799次浏览 558人参与
# 秋招被挂春招仍然能投的公司 #
8592次浏览 110人参与
# 简历当中有水分算不算造假? #
154147次浏览 2250人参与
# mt对你说过最有启发的一句话 #
40948次浏览 466人参与
# 秋招被确诊为…… #
277052次浏览 1583人参与
# 国庆前的秋招小结 #
265707次浏览 1718人参与
# 什么是优秀的实习经历 #
10648次浏览 236人参与
# 选实习,你更看重哪方面? #
16254次浏览 270人参与
# 你收到了团子的OC了吗 #
1483611次浏览 11811人参与
# 摸鱼被leader发现了怎么办 #
106476次浏览 674人参与
