二叉树计算【华为OD机试JAVA&Python&C++&JS题解】

149 篇文章 305 订阅 ¥9.90 ¥99.00

一. 题目-二叉树计算

给出一个二叉树如下图所示:
6
/
7 9
\ /
-2 6

请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。

            20(7-2+9+6)
            /      \
           -2       6
            \      /   

             0    0 

左子树表示该节点左侧叶子节点为根节点的一颗新树;右子树表示该节点右侧叶子节点为根节点的一颗新树

输入描述:

2行整数,第1行表示二叉树的中序遍历,第2行表示二叉树的前序遍历,以空格分割

例如:

7 -2 6 6 9
6 7 -2 9 6

输出描述:

1行整数,表示求和树的中序遍历,以空格分割

例如:

输出1
-2 0 20 0 6

补充说明:

示例1

输入:

-3 12 6 8 9 -10 -7
8 12 -3 6 -10 9 -7
输出:

0 3 0 7 0 2 0

二.解题思路

理解问题的关键在于构建一个新的二叉树,使每个节点的值等于原始树中以该节点为根的子树的所有节点值之和。为了达到这个目的,我们可以按照以下步骤进行:

  1. 构建原始二叉树: 通过给定的中序遍历和前序遍历,构建出原始的二叉树。<

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值