华为OD机试E卷真题 二叉树计算 | 原题+思路+多语言代码(本题100%)(C++、Java、Py)
题目描述
给出一个二叉树如下图所示:
请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。
左子树表示该节点左侧叶子节点为根节点的一颗新树;右子树表示该节点右侧叶子节点为根节点的一颗新树。
输入描述
2行整数,第1行表示二叉树的中序遍历,第2行表示二叉树的前序遍历,以空格分割。
输出描述
1行整数,表示求和树的中序遍历,以空格分割
示例1
输入
-3 12 6 8 9 -10 -7
8 12 -3 6 -10 9 -7
输出
0 3 0 7 0 2 0
说明
解题思路
-
构造原始二叉树:利用前序遍历和中序遍历构造原始二叉树。
-
计算每个节点的左子树和右子树的和:递归计算每个节点的左子树和右子树的和。
-
构建新树:根据计算的和构建新树。
-
输出新树的中序遍历:遍历新树并输出结果
</
订阅专栏 解锁全文
3785

被折叠的 条评论
为什么被折叠?



