关注
/** * 方法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]; }
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
明天不下雨了:这垃圾公司
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
18856次浏览 463人参与
# 秋招什么时候开投比较合适? #
8234次浏览 168人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
22653次浏览 188人参与
# 实习,不懂就问 #
30659次浏览 529人参与
# 软开人,秋招你打算投哪些公司呢 #
101155次浏览 951人参与
# 如何准备秋招 #
12538次浏览 224人参与
# 运营人求职交流聚集地 #
141208次浏览 989人参与
# 每个月的工资都是怎么分配的? #
15517次浏览 328人参与
# 你觉得现在还能进互联网吗? #
4901次浏览 102人参与
# 预测一下26届秋招形势 #
26531次浏览 247人参与
# 你们公司几号发工资 #
19152次浏览 129人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
28240次浏览 456人参与
# 晒一晒你收到的礼盒 #
70322次浏览 403人参与
# 打工人的精神状态 #
54371次浏览 993人参与
# 硬件应届生薪资是否普遍偏低? #
72714次浏览 511人参与
# 高考出分的那一天,我__ #
17309次浏览 269人参与
# 大疆今年的机械笔试难吗? #
41549次浏览 456人参与
# 来聊聊你认为的薪资天花板是哪家? #
31002次浏览 175人参与
# 牛客十周岁生日快乐 #
145263次浏览 1613人参与
# 机械实习一天多少钱合适? #
29058次浏览 177人参与
# 大家实习每天都在干啥 #
82958次浏览 506人参与